Tag Archives: Treeview

Bekerja Dengan TreeNodeBinding dalam Kawalan Treeview ASP.NET

Saya telah bekerja pada apa yang saya harap akan menjadi tidak lama lagi dibebaskan CodePlex projek yang memberikan sedikit nice bersepadu bahagian web bercakap antara satu sama lain melalui sambungan pembekal / pengguna bagi tujuan meneroka tapak SharePoint di bawah penutup.  (Ini sememangnya telah dilakukan sebelum, tetapi ini adalah satu projek pembelajaran sebanyak apa-apa lagi).  Ini bertujuan untuk menjadi pengganti windows explorer view SharePoint 2010 dokumen perpustakaan.

Kod mempunyai panggilan biasa rekursi turun dan SPWeb SPLists dari satu titik yang diberikan bermula.  Objek yang melakukan segala-lalang di yang membina rentetan XML yang kelihatan seperti ini:

<url sitecollection =’http://demo2010a:9090′>
 
<web
     title = 'Hello World Sandbox' 
     Template = 'Laman untuk pasukan dengan cepat menganjurkan, pengarang, dan berkongsi maklumat, Blah blah blah '>

     <senarai
        title = 'BCC_Health_Services_FAQs’
        Template = 'CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[Saya berkongsi]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</senarai>

     <senarai
        title = 'BCC_Notifications' 
        Template = 'CustomList' 
        listid =’
http://demo2010a:9090/helloworldsandbox[Saya berkongsi]5a5a13d1-877c-41c0-9063-b9612be80d5e’>
     </senarai>

  </web>

</sitecollection>

Saya menjangka untuk membersihkan bahawa XML sebelum semua dikatakan dan dilakukan.

Saya mahu untuk akhirnya mendapatkan maklumat itu dan menjadi kawalan Treeview.  Tidak tepat barangan menghancurkan bumi.

Cabaran yang saya ambil di sini adalah untuk menyambung pandangan pokok untuk kawalan Sumber data XML bukan manual membina treenodes saya kerana saya merentasi pokok itu.  Saya lakukan ini sebahagiannya kerana saya sengaja membuat perkara yang lebih keras terhadap diri saya (ini adalah satu projek pembelajaran selepas semua) dan sebahagiannya kerana saya mempunyai pengertian yang samar-samar yang membina nod pokok kerana saya merentasi pokok itu bukan adalah idea yang baik untuk jangka masa panjang.

Masalah dengan pendekatan ini ialah bahawa kawalan Treeview tidak tahu tentang sifat-sifat yang baik pada nod yang menarik seperti "senarai" atau "web", jadi ia menunjukkan output ini secara lalai:

 

image

Yang tidak berguna.  Ini adalah mana kelas TreeNodeBinding membantu.  Saya boleh menggunakan ini untuk memberitahu kawalan Treeview bagaimana ia harus mentafsir XML.  Berikut adalah contoh:

TNB = baru TreeNodeBinding();
TNB. DataMember = "Senaraikan"; // Ini adalah label dalam xml untuk tapak.
TNB. TargetField = "listid";
TNB. ValueField = "tajuk";
TNB. ToolTipField = "Template";

Mengikat ini menceritakan treeview bahawa apabila ia mendapati <senarai> nod dalam XML, menggunakan pengikatan untuk TargetField, ValueField dan ToolTipField.  Di boleh app, peta ini seperti berikut::

  • TargetField: Seseorang klik apabila pada nilai nod, ini adalah apa yang anda akan mendapat SelectedNode.Value.  Ini tidak boleh dikelirukan dengan ...
  • ValueField: Ini adalah apa yang anda mahu Treeview untuk memaparkan kepada pengguna.
  • ToolTipField: Nilai dari XML yang anda mahu sebagai Tooltip.

Menambah bahawa TreeNodebinding pada DataBindings paparan struktur pohon dan anda mendapat output seperti ini:

 

image

Saya akan mempunyai lebih banyak ke atas semua ini kerana saya terus projek dan akhirnya meletakkan ini pada Codeplex.

</akhir>

Langgan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin