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

3 pemikiran untuk "Bekerja Dengan TreeNodeBinding dalam Kawalan Treeview ASP.NET

  1. Pingback: Tweets yang menyebutkan bekerja dengan TreeNodeBinding dalam kawalan ASP.NET Treeview «Paul Galvin SharePoint Angkasa -- Topsy.com

  2. Holger

    Hi Paul,

    Aku hanya menyemak bahawa diri sendiri. Ia bekerja sepertimana anda menyifatkan bahawa walaupun saya tidak mendapat maklumat tersebut dari laman web anda (kesiannya :-)).
    Perkara yang saya amat berminat dalam, Saya cuba untuk membuat struktur malas memuatkan dengan harta PopulateOnDemand. Sebaliknya treeview yang memuatkan struktur lengkap secara keseluruhan yang saya ingin mengelakkan. Hotel ini PopulateOnDemand seolah-olah tidak ada kesan.

    Juga dalam treeview tidak Simpan mengembangkan mana-mana / runtuh kan maklumat.

    Adakah anda menyelesaikan isu-isu ini?

    Salam

    Holger

    Balas
    1. Paul Galvin Post pengarang

      Saya tahu anda menyiarkan komen ini masa yang lama lalu. Maaf kerana tidak menjawab. Saya menganggap bahawa anda mendapat penyelesaian anda lama :).

      Balas

Tinggalkan Jawapan

alamat e-mel anda tidak akan diterbitkan. Ruangan yang diperlukan ditanda *