Kopieren Sie den Codecode wie folgt:
<script language="javascript">
/*
Funktionsname: CheckNode(currentNode), ParentNode(currentNode), ChildNode(currentNode)
Funktion: Baumansicht mit Kontrollkästchen implementieren
1. Wählen Sie den übergeordneten Knoten aus und alle seine untergeordneten Knoten werden ebenfalls ausgewählt.
2. Nachdem die Auswahl aller untergeordneten Knoten abgebrochen wurde, wird auch die Auswahl des übergeordneten Knotens abgebrochen.
Anwendung:
1. Fügen Sie CheckNode(currentNode), ParentNode(currentNode), ChildNode(currentNode) in der Mitte von <head></head> hinzu
2. Fügen Sie yourTreeView.Attribute.Add("OnCheck","CheckNode(yourTreeView.getTreeNode(yourTreeView.clickedNodeIndex))") im Page_load()-Ereignis von *.aspx.cs hinzu
*/
// Alle untergeordneten Knoten rekursiv durchlaufen
Funktion CheckNode(currentNode)
{
var childNode=new Array();
var parentNodeChild=new Array();
var isChecked;
childNode=currentNode.getChildren();
if(currentNode.getAttribute('checked'))
{
isChecked=true;
}
anders
{
isChecked=false;
}
//Verarbeitung des übergeordneten Knotens
if(currentNode.getParent()!=null)
{
//Verarbeitung auswählen
if(currentNode.getAttribute('Checked'))
{
ParentNode(currentNode);
}
anders
//Deaktivieren
{
ChildNode(currentNode);
}
}
anders
{
//Nichts tun
}
// Verarbeitung des untergeordneten Knotens
if(childNode.length>0)
{
for(var i=0;i<childNode.length;i++)
{
childNode.setAttribute("Checked",isChecked);
if(childNode.getChildren().length>0)
{
CheckNode(childNode);
}
}
}
}
//Wählen Sie rekursiv den übergeordneten Knoten aus
Funktion ParentNode(currentNode)
{
if(currentNode.getParent()!=null)
{
currentNode.getParent().setAttribute('Checked',true);
//Rekursiv ParentNode(currentNode) aufrufen, um den übergeordneten Knoten einer höheren Ebene zu durchlaufen
ParentNode(currentNode.getParent());
}
}
// Den übergeordneten Knoten rekursiv abwählen
Funktion ChildNode(currentNode)
{
if(currentNode.getParent()!=null)
{
var reviewedCount=0;
var childNode=currentNode.getParent().getChildren();
for (var i=0;i<childNode.length;i++)
{
if(childNode.getAttribute('Checked'))
{
checkedCount++;
}
}
if(checkedCount==0)
{
currentNode.getParent().setAttribute('Checked',false);
}
// ChildNode (currentNode) rekursiv aufrufen, um den übergeordneten Knoten einer höheren Ebene zu durchlaufen
ChildNode(currentNode.getParent());
}
}
</script>
js durchläuft rekursiv alle untergeordneten Knoten eines Knotens in der Baumansicht
Kopieren Sie den Codecode wie folgt:
var AllRootNode=new Array();
AllRootNode=TreeView1.getChildren();
AlertNode(AllRootNode);
functionAlertNode(NodeArray)
{
if(parseInt(NodeArray.length)==0)
zurückkehren;
anders
{
for(i=0;i<NodeArray.length;i++)
{
var cNode;
cNode=NodeArray;
alarm(cNode.getAttribute("Text"));
if(parseInt(cNode.getChildren().length)!=0)
AlertNode(cNode.getChildren());
}
}
}