انسخ رمز الكود كما يلي:
<لغة البرمجة = "جافا سكريبت">
/*
اسم الوظيفة: CheckNode(currentNode)، ParentNode(currentNode)، ChildNode(currentNode)
الوظيفة: تنفيذ Treeview باستخدام مربع الاختيار
1. حدد العقدة الأصلية ويتم تحديد كافة العقد الفرعية الخاصة بها أيضًا.
2. بعد إلغاء تحديد جميع العقد الفرعية، سيتم أيضًا إلغاء تحديد العقدة الأصلية.
كيفية الاستخدام:
1. أضف CheckNode(currentNode)، ParentNode(currentNode)، ChildNode(currentNode) في منتصف <head></head>
2. أضف yourTreeView.Attribute.Add("OnCheck"،"CheckNode(yourTreeView.getTreeNode(yourTreeView.clickedNodeIndex))") في حدث Page_load() لـ *.aspx.cs
*/
// اجتياز جميع العقد الفرعية بشكل متكرر
وظيفة CheckNode(currentNode)
{
var ChildNode=new Array();
varparentNodeChild=new Array();
فار تم التحقق منه؛
ChildNode=currentNode.getChildren();
إذا (currentNode.getAttribute('محدد'))
{
isChecked=true;
}
آخر
{
isChecked=false;
}
// معالجة العقدة الأم
إذا (currentNode.getParent()!=null)
{
// حدد المعالجة
إذا (currentNode.getAttribute('تم التحديد'))
{
ParentNode(currentNode);
}
آخر
// قم بإلغاء التحديد
{
ChildNode(currentNode);
}
}
آخر
{
// لا تفعل شيئًا
}
// معالجة العقدة الفرعية
إذا (childNode.length>0)
{
for(var i=0;i<childNode.length;i++)
{
ChildNode.setAttribute("تم التحقق منه",isChecked);
إذا (childNode.getChildren().length>0)
{
CheckNode(childNode);
}
}
}
}
// حدد العقدة الأصلية بشكل متكرر
الدالة ParentNode(العقدة الحالية)
{
إذا (currentNode.getParent()!=null)
{
currentNode.getParent().setAttribute('Checked',true);
// اتصل بشكل متكرر بـ ParentNode(currentNode) لاجتياز العقدة الأصلية ذات المستوى الأعلى
ParentNode(currentNode.getParent());
}
}
// قم بإلغاء تحديد العقدة الأصلية بشكل متكرر
وظيفة ChildNode(العقدة الحالية)
{
إذا (currentNode.getParent()!=null)
{
var checkCount=0;
var ChildNode=currentNode.getParent().getChildren();
لـ (var i=0;i<childNode.length;i++)
{
إذا (childNode.getAttribute('تم التحقق'))
{
checkCount++;
}
}
إذا (العدد المحدد==0)
{
currentNode.getParent().setAttribute('Checked',false);
}
// اتصل بشكل متكرر بـ ChildNode(currentNode) لاجتياز العقدة الأصلية ذات المستوى الأعلى
ChildNode(currentNode.getParent());
}
}
</script>
يجتاز Node.js بشكل متكرر جميع العقد الفرعية للعقدة في Treeview
انسخ رمز الكود كما يلي:
var AllRootNode=new Array();
AllRootNode=TreeView1.getChildren();
AlertNode(AllRootNode);
functionAlertNode(NodeArray)
{
إذا (parseInt(NodeArray.length)==0)
يعود؛
آخر
{
ل(i=0;i<NodeArray.length;i++)
{
فار cNode;
cNode=NodeArray;
تنبيه(cNode.getAttribute("نص"));
إذا (parseInt(cNode.getChildren().length)!=0)
AlertNode(cNode.getChildren());
}
}
}