ทำงานกับ TreeNodeBinding ในการควบคุม ASP.NET Treeview

ฉันได้ทำงานในสิ่งที่ฉันหวังว่า จะเป็นเร็ว ๆ นี้ออก CodePlex โครงการที่มีบิตรวมดีส่วนเว็บที่พูดคุยกันผ่านการเชื่อมต่อผู้ให้บริการ/ผู้บริโภคเพื่อสำรวจไซต์ SharePoint ที่ครอบคลุม  (นี้แน่นอนแล้วก่อน, แต่นี้เป็นโครงการเรียนรู้ถึงสิ่งใด).  นี้จะหมายถึงการแทนมุมมอง explorer windows ของ SharePoint 2010 ไลบรารีเอกสาร.

รหัสซ้ำปกติโทรลงของ SPWeb และ SPLists จากการเริ่มต้นกำหนดจุด  สตริง XML ที่ดูเหมือนสร้างวัตถุที่ไม่ข้ามสิ่งกีดทั้งหมดที่ขวาง:

<sitecollection url =’http://demo2010a:9090′>
 
<เว็บ
     ชื่อ = 'สวัสดี โลก Sandbox' 
     แม่=' ไซต์สำหรับทีมงานเพื่อจัดระเบียบได้อย่างรวดเร็ว, ผู้เขียน, และใช้ข้อมูลร่วมกัน, BLAH BLAH BLAH'>

     <รายการ
        ชื่อ ='BCC_Health_Services_FAQs’
        แม่ ='CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</รายการ>

     <รายการ
        ชื่อ = 'BCC_Notifications' 
        แม่ = 'CustomList' 
        listid =’
http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1 - 877c - 41c 0-9063-b9612be80d5e’>
     </รายการ>

  </เว็บ>

</sitecollection>

ต้องทำความสะอาดที่ XML ก่อนทั้งหมดจะพูด และทำ.

ต้องการรับข้อมูลสุด ขึ้น และลง ในตัวควบคุม Treeview  ไม่ว่าเอิร์ทสิ่งซึ่งทำให้ป่นปี้.

ความท้าทายที่ผมเอาที่นี่เชื่อมต่อมุมมองทรีตัวควบคุมแหล่งข้อมูล XML แทนด้วยตนเองสร้างขึ้น treenodes ของฉันเป็นฉันข้ามต้นได้  ฉันไม่นี้เนื่องจากตั้งใจทำสิ่งที่ยากในตัวเอง (นี้เป็นโครงการเรียนรู้จาก) และเนื่อง จากมีความนี้คลุมเครือที่สร้างโหนดแผนภูมิฉันข้ามต้นไม้ไม่ใช่ความคิดที่ดีในระยะยาว.

ปัญหา ด้วยวิธีการนี้คือการ ที่ตัวควบคุม Treeview ไม่ทราบเกี่ยวกับคุณลักษณะดีบนโหนน่าสนใจเช่น "รายการ" หรือ "เว็บ" เพื่อแสดงผลนี้ตามค่าเริ่มต้น:

 

image

ที่ไม่มีประโยชน์  ที่คลา TreeNodeBinding ช่วยได้  ฉันสามารถใช้นี้เพื่อบอกตัวควบคุม Treeview วิธีนั้นควรแปล XML  นี่คือตัวอย่าง:

tnb = TreeNodeBinding ใหม่();
tnbDataMember = "รายการ"; // นี่คือป้ายชื่อใน xml สำหรับไซต์.
tnbTargetField = "listid";
tnbValueField = "ชื่อเรื่อง";
tnbToolTipField = "แม่";

ผูกนี้บอกการ treeview ซึ่งเมื่อพบการ <รายการ> โหนใน XML, ใช้ผูกสำหรับ TargetField, ValueField และ ToolTipField  ในพฤษภาคม app, นี่แผนที่ดังนี้:

  • TargetField: เมื่อมีคนคลิกที่ค่าโหนด, นี่คือสิ่งที่คุณจะได้รับการ SelectedNode.Value  นี้จะไม่สับสนกับ...
  • ValueField: นี่คือสิ่งที่คุณต้อง Treeview เพื่อแสดงให้ผู้ใช้.
  • ToolTipField: ค่าจาก XML ที่คุณต้องการเป็นมือ.

เพิ่มที่ TreeNodebinding DataBindings ของมุมมองแผนภูมิและคุณได้รับผลเช่นนี้:

 

image

ฉันจะมีมากขึ้นทั้งหมดนี้ฉันกับโครงการต่อไป และในที่สุดทนนี้บน Codeplex.

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

3 คิดเกี่ยวกับ“ทำงานกับ TreeNodeBinding ในการควบคุม ASP.NET Treeview

  1. Pingback: เข้ามาที่พูดถึงการทำงานกับ TreeNodeBinding ในการควบคุม ASP.NET Treeview «Paul Galvin SharePoint พื้นที่ -- Topsy.com

  2. Holger

    Hi Paul,

    ผมเพิ่งตรวจสอบที่ตัวเอง. ทำงานเท่าที่คุณอธิบายที่แม้ว่าฉันไม่ได้รับข้อมูลจากเว็บไซต์ของคุณ (น่าเสียดายจัง :-)).
    จุดที่ผมสนใจอยู่, พยายามที่จะทำให้โครงสร้างขี้เกียจโหลด ด้วยคุณสมบัติ PopulateOnDemand. มิฉะนั้น การ treeview โหลดโครงสร้างเสร็จสมบูรณ์ทั้งหมดที่อยากจะหลีกเลี่ยง. นี่ PopulateOnDemand ดูเหมือนว่าไม่ มีผลใด ๆ.

    นอกจากนี้ treeview การไม่บันทึกการขยาย / ยุบข้อมูลสถานะ.

    คุณแก้ปัญหาเหล่านี้หรือไม่?

    ขอแสดงความนับถือ

    Holger

ทิ้งคำตอบไว้

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่. ช่องที่ต้องการถูกทำเครื่องหมาย *