ฉันได้ทำงานในสิ่งที่ฉันหวังว่า จะเป็นเร็ว ๆ นี้ออก 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 ไม่ทราบเกี่ยวกับคุณลักษณะดีบนโหนน่าสนใจเช่น "รายการ" หรือ "เว็บ" เพื่อแสดงผลนี้ตามค่าเริ่มต้น:
ที่ไม่มีประโยชน์ ที่คลา 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 ของมุมมองแผนภูมิและคุณได้รับผลเช่นนี้:
ฉันจะมีมากขึ้นทั้งหมดนี้ฉันกับโครงการต่อไป และในที่สุดทนนี้บน Codeplex.
</สิ้นสุด>
ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin
Pingback: เข้ามาที่พูดถึงการทำงานกับ TreeNodeBinding ในการควบคุม ASP.NET Treeview «Paul Galvin SharePoint พื้นที่ -- Topsy.com
Hi Paul,
ผมเพิ่งตรวจสอบที่ตัวเอง. ทำงานเท่าที่คุณอธิบายที่แม้ว่าฉันไม่ได้รับข้อมูลจากเว็บไซต์ของคุณ (น่าเสียดายจัง :-)).
จุดที่ผมสนใจอยู่, พยายามที่จะทำให้โครงสร้างขี้เกียจโหลด ด้วยคุณสมบัติ PopulateOnDemand. มิฉะนั้น การ treeview โหลดโครงสร้างเสร็จสมบูรณ์ทั้งหมดที่อยากจะหลีกเลี่ยง. นี่ PopulateOnDemand ดูเหมือนว่าไม่ มีผลใด ๆ.
นอกจากนี้ treeview การไม่บันทึกการขยาย / ยุบข้อมูลสถานะ.
คุณแก้ปัญหาเหล่านี้หรือไม่?
ขอแสดงความนับถือ
Holger
ฉันรู้ว่า คุณลงรายการบัญชีข้อคิดเห็นนี้นานมาแล้ว. ขอไม่ตอบสนอง. ฉันคิดว่า คุณมีโซลูชันของคุณนาน :).