وصف المشكلة: لا يوجد سوى أربع عقد في TreeView في مجموعة الإطارات، بعد فتح إحداها، قم بإغلاق العقد الثلاث الأخرى.
في البداية، كتبته في TreeView1_Expand، وهو يعمل، لكنك بحاجة إلى ضبط إعادة النشر التلقائي على "صحيح"، وسيبدو قبيحًا عند التحديث، كما أنني بحثت عن المعلومات على الإنترنت والمواضيع ذات الصلة كما يلي:
================
1. "لا يتم الإرسال عند التوسيع، يتم الإرسال فقط عند تغيير العقدة المحددة"
2. "قم بتمكين TreeView لسحب جميع العقد الموسعة الأخرى تلقائيًا بعد توسيع العقدة، أي أنه لا يوجد سوى عقدة موسعة واحدة في نفس الوقت."
3. "حل لتوسيع TreeView بدون وميض"
4. "مناقشة خاصة لعرض الشجرة"
5. "بحث حول طريقة التحكم في TreeView JavaScript"
================
يوجد أعلاه نص جافا سكريبت مكتوب بشكل جيد، ولكن بعد تجربته لفترة طويلة، تظهر لي الأخطاء دائمًا.
لذلك كتبت واحدة بنفسي.
<لغة البرمجة = "جافا سكريبت">
الدالة initTree()
{
var Tree = document.all["TreeView1"];
Tree.attachEvent("oneexpand"، SelectedIndexChange); //إلحاق حدث
}
الدالة SelectedIndexChange()
{
var temp = this.TreeView1.clickedNodeIndex;
العقد var = new Array();
العقد = this.TreeView1.getChildren();
ل(i=0;i<nodes.length;i++)
{
إذا (أنا! = درجة الحرارة)
{
إذا (ط <10)
NodeIndex = "0"+i;// استخدمت أربع عقد فقط، جربها مع أكثر من عشر عقد.
this.TreeView1.getTreeNode(nodeIndex).setAttribute('expanded','false');
}
}
}
</script>
وأخيرا، اكتب واحدة في الجسم
<body onload="initTree();">
انها جاهزة للاستخدام.
بالطبع، يمكنك أيضًا كتابة جافا سكريبت في page_load كما هو الحال في "منتدى TreeView"، ولكن ذلك قد يكون مزعجًا للغاية وعرضة للأخطاء.