amel468
Messages postés34Date d'inscriptionvendredi 10 janvier 2003StatutMembreDernière intervention10 avril 2006
-
20 août 2004 à 14:19
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
20 août 2004 à 18:30
Bonjour,
J'essaye de construire un tableau qui doit posseder les propriétés extend et collapse.
Ce tableau se remplit a l'aide des données d'une table oracle et suivant les parametres sélectionnés par l'utilisateur.
je gere l'extand et collapse grace a des fonctions javascript, qui se declanchent lors de l'evenement onclick des balises <td> de mon tableau.
Le probleme, c'est que je n'arrive pas a faire fonctionner mes fonctions javascript....quand je clique sur les case, il ne se passe abolument rien...
est-ce que c'est parceque je les appelle d'une mauvaise facon ?
voici le code que j'utilise:
au moment de créer le tableau, dans le code behind
au depart, j'utilise une fonction fulltree qui, si la variable fullmode est a 'expand' affiche tout l'arbre et passe la variable fullmode a 'collapse', sinon n'affiche que les niveaux 0 et passe la variable a 'expand'. J'utilise ensuite la fonction showMode qui ne sert qu'a afficher un (+) ou un (-) suivant si l'arbre est deroule ou pas.
puis, dans chaque balise TD, j'appelle une fonction sur l'evenement OnClick, qui permettra de montrer les ligne enfants si on clique dessus, ou de les cacher si on re-clique.
while(dr.Read())
{
if (lno > 1) //lno = niveau de la ligne dans l'arbre
{
//ligne 1 puis a chaque passage du dr avance d'une ligne
Page.Response.Write("<TR class=level" + lno.ToString() + " style="display: none;">");
//colonne 1
Page.Response.Write("<TD onclick="javascript:showrow(this.parentNode.rowIndex)" class="level" + lno.ToString() + "">" + dr.GetString(2));
}
else //=si niveau 0
{
//ligne 1 puis a chaque passage du dr avance d'une ligne
Page.Response.Write( "<TR class=level" + lno.ToString() + " >");
//colonne 1
Page.Response.Write( "<TD onclick="javascript:showrow(this.parentNode.rowIndex)" class="level" + lno.ToString() + "">" + dr.GetString(2) );
}
et voici la fonction qui se trouve sur la page page aspx, entre les balises <SCRIPT language="JavaScript" type="text/javascript"> et </script> du code html
function showrow(rowid)
{
var currow , level, childlevel
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 20 août 2004 à 17:55
pffff je suis fatigué :d
oui effectivement c'est tout simplement literal et non literalcontrol
pour le withevents, c'est le code VB, j'avais oublié que tu travaillais en C# :) mais le principal c'est que ce soit bon maintenant
encore une derniere astuce :
au lieu d'ecrire
lc.Text = lc.Text +"";
lc.Text = lc.Text +"";
lc.Text = lc.Text +"";
ecrit donc
lc.Text +="";
lc.Text +="";
lc.Text +="";
pour ce qui est de l'erreur qu'il te reste, IE ne peux t'indiquer que des erreurs de Javascript, donc investigue de ce coté
@+
PS : si ma reponse te convient, cliques sur accepter la reponse, ainsi les personnes qui regardent le forum, voit que ce problème à une solution
amel468
Messages postés34Date d'inscriptionvendredi 10 janvier 2003StatutMembreDernière intervention10 avril 20061 20 août 2004 à 17:38
OK, ca va mieux, j'avais juste oublié un "lc.text + "
toute ma page s'affiche correctement mais quand je veux cliquer sur une case de mon tableau, il ecrit dans la barre d'etat qu'il y a une erreur sur la page et rien ne se passe.
j'ai vérifié la source, les fonctions javascript s'affichent avant désormais.
le probleme vient surement de mes fonctions. je vais investiguer.....
amel468
Messages postés34Date d'inscriptionvendredi 10 janvier 2003StatutMembreDernière intervention10 avril 20061 20 août 2004 à 18:12
encore une derniere question et puis j'arrete de t'embeter...
l'erreur vient quand j'appelle ClasTab.rows[k].cells[15].innerHTML dans mes fonctions javascript... il me dit qu'il est nul, ou bien que ce n'est pas un objet.
ClasTable est défini dans la page aspx.cs de cet facon
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 20 août 2004 à 18:30
Malheureusement je suis nul en javascript :sad)
mais ton erreur à l'air d'etre qu'il ne connait pas ClasTab
tu as deux solutions:
soit tu fais ainsi :
document.Form1.ClasTab.rows[k].cells[15].innerHTML
soit comme ca :
document.getElementById("ClasTab").rows .....
Je prefere la deuxieme méthode : pourquoi ? aucune idée :)
Je suis pas du tout sur pour la casse du code que je t'ai passé, ni meme pour sa validation, car je connais vraiment pas grand chose à javascript