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.
Je les appelle ainsi :
Page.Response.Write("<TR><TD id=PersonType name=PersonType valign=CENTER onclick=\"javascript:fulltree('" + title + "')\" >");
Page.Response.Write(title);
Page.Response.Write("<SCRIPT language=\"JavaScript\" type=\"text/javascript\">showMode()</SCRIPT>");
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
currow = rowid
level = parseInt(ClasTab.rows[currow].cells[15].innerHTML)
currow++;
if (ClasTab.rows[currow].style.display == "none")
{
mode = "open"
}
else
{
mode = "close"
}
if (currow < maxrows)
{
childlevel = parseInt(ClasTab.rows[currow].cells[15].innerHTML)
while ( childlevel > level)
{if ((childlevel == level+1) || mode == "close")
{
toggleRow(ClasTab.rows[currow])
}
currow++;
if (currow == maxrows) {break}
childlevel = parseInt(ClasTab.rows[currow].cells[15].innerHTML)
}
}
}
Merci beaucoup de votre aide !!