คำอธิบายปัญหา: มีเพียงสี่โหนดใน TreeView ในเฟรมเซ็ต หลังจากเปิดหนึ่งโหนดแล้ว ให้ปิดอีกสามโหนดที่เหลือ
ตอนแรกฉันเขียนไว้ใน TreeView1_Expand ซึ่งใช้งานได้ แต่คุณต้องตั้งค่า autopostback ให้เป็น true มันจะดูน่าเกลียดเมื่อรีเฟรช ฉันค้นหาข้อมูลบนอินเทอร์เน็ตและหัวข้อที่เกี่ยวข้องมีดังนี้:
1. “อย่าส่งตอนขยาย ให้ส่งตอนเปลี่ยนโหนดที่เลือกเท่านั้น”
2. "เปิดใช้งาน TreeView เพื่อถอนโหนดที่ขยายอื่นๆ ทั้งหมดโดยอัตโนมัติหลังจากขยายโหนด นั่นคือ มีโหนดที่ขยายเพียงโหนดเดียวในเวลาเดียวกัน"
3. "โซลูชั่นการขยาย TreeView โดยไม่กระตุก"
4. “เสวนาพิเศษ TreeView”
5. "การวิจัยเกี่ยวกับวิธีการควบคุม TreeView JavaScript"
มีสคริปต์จาวาสคริปต์ด้านบนที่เขียนได้ดี แต่หลังจากลองใช้มาเป็นเวลานาน ฉันมักจะพบข้อผิดพลาดเสมอ
ดังนั้นฉันจึงเขียนเรื่องหนึ่งด้วยตัวเอง
<ภาษาสคริปต์ = "จาวาสคริปต์">
ฟังก์ชั่น initTree()
-
var tree = document.all["TreeView1"];
tree.attachEvent("oneexpand", SelectedIndexChange); // ผนวกเหตุการณ์
-
ฟังก์ชั่น SelectedIndexChange()
-
var temp = this.TreeView1.clickedNodeIndex;
โหนด var = อาร์เรย์ใหม่ ();
โหนด = this.TreeView1.getChildren();
สำหรับ(i=0;i<nodes.length;i++)
-
ถ้า(i!=temp)
-
ถ้า(ฉัน<10)
nodeIndex = "0"+i;//ฉันใช้เพียงสี่โหนดเท่านั้น ลองใช้มากกว่าสิบโหนด
this.TreeView1.getTreeNode(nodeIndex).setAttribute('ขยาย','false');
-
-
-
</สคริปต์>
สุดท้ายเขียนสิ่งหนึ่งในร่างกาย
<body onload="initTree();">
พร้อมใช้งานได้เลย
แน่นอน คุณยังสามารถเขียนจาวาสคริปต์ใน page_load เช่นเดียวกับใน "TreeView Forum" ได้ แต่นั่นอาจเป็นปัญหามากและเกิดข้อผิดพลาดได้ง่าย