Copiez le code comme suit :
<langage de script="javascript">
/*
Nom de la fonction : CheckNode (currentNode), ParentNode (currentNode), ChildNode (currentNode)
Fonction : implémenter l'arborescence avec case à cocher
1. Sélectionnez le nœud parent et tous ses nœuds enfants sont également sélectionnés.
2. Après avoir annulé la sélection de tous les nœuds enfants, la sélection du nœud parent sera également annulée.
Comment utiliser :
1. Ajoutez CheckNode(currentNode), ParentNode(currentNode), ChildNode(currentNode) au milieu de <head></head>
2. Ajoutez yourTreeView.Attribute.Add("OnCheck","CheckNode(yourTreeView.getTreeNode(yourTreeView.clickedNodeIndex))") dans l'événement Page_load() de *.aspx.cs
*/
// Traverse récursivement tous les nœuds enfants
fonction CheckNode (currentNode)
{
var childNode=nouveau tableau();
var parentNodeChild=nouveau tableau();
var estVérifié;
childNode=currentNode.getChildren();
if(currentNode.getAttribute('checked'))
{
isChecked=true ;
}
autre
{
isChecked=false;
}
//Traitement du nœud parent
si(currentNode.getParent()!=null)
{
//Sélectionner le traitement
if(currentNode.getAttribute('Checked'))
{
ParentNode(currentNode);
}
autre
//Décocher
{
ChildNode(currentNode);
}
}
autre
{
//Ne rien faire
}
//Traitement du nœud enfant
si (enfantNode.length>0)
{
pour(var i=0;i<childNode.length;i++)
{
childNode.setAttribute("Checked",isChecked);
si (childNode.getChildren().length>0)
{
CheckNode(enfantNode);
}
}
}
}
//Sélectionne récursivement le nœud parent
fonction ParentNode (currentNode)
{
si(currentNode.getParent()!=null)
{
currentNode.getParent().setAttribute('Checked',true);
//Appelez récursivement ParentNode(currentNode) pour parcourir le nœud parent de niveau supérieur
ParentNode(currentNode.getParent());
}
}
//Désélectionnez récursivement le nœud parent
fonction ChildNode (currentNode)
{
si(currentNode.getParent()!=null)
{
var vérifiéCount=0;
var childNode=currentNode.getParent().getChildren();
pour (var i=0;i<childNode.length;i++)
{
if(childNode.getAttribute('Checked'))
{
checkCount++;
}
}
si (checkedCount == 0)
{
currentNode.getParent().setAttribute('Checked',false);
}
//Appelle récursivement ChildNode(currentNode) pour parcourir le nœud parent de niveau supérieur
ChildNode(currentNode.getParent());
}
}
</script>
js parcourt récursivement tous les nœuds enfants d'un nœud dans l'arborescence
Copiez le code comme suit :
var AllRootNode=nouveau tableau();
AllRootNode=TreeView1.getChildren();
AlertNode(AllRootNode);
fonctionAlertNode(NodeArray)
{
si (parseInt (NodeArray.length) ==0)
retour;
autre
{
pour(i=0;i<NodeArray.length;i++)
{
var cNoeud ;
cNode=NodeArray;
alert(cNode.getAttribute("Texte"));
if(parseInt(cNode.getChildren().length)!=0)
AlertNode(cNode.getChildren());
}
}
}