Paggawa sa Sa TreeNodeBinding sa ang ASP.NET Treeview Control

Ako ay nagtatrabaho sa kung ano ang Umaasa ako ay isang madaling-inilabas CodePlex proyekto na nagbibigay ng isang magandang integrated bit ng mga bahagi ng web na pakikipag-usap sa bawat isa sa pamamagitan ng koneksyon sa provider / mamimili para sa layuning pagsisiyasat ng isang SharePoint site sa ilalim ng pabalat.  (Ito ay tiyak ay tapos na bago, ngunit ito ay isang proyekto ng pag-aaral ng mas maraming bilang anumang bagay).  Ito ay nilalayong maging isang kapalit para sa mga bintana explorer view ng SharePoint 2010 dokumento aklatan.

Ang code ay karaniwang recursive tawag down na ang SPWeb at SPLists mula sa isang ibinigay na panimulang punto.  Ang bagay na ang lahat na traversing builds up ng isang XML string na mukhang isang bagay tulad nito:

<sitecollection url =’http://demo2010a:9090′>
 
<web
     pamagat = 'Kamusta World Sandbox' 
     Template = 'Ang isang site para sa mga koponan sa mabilis na ayusin, may-akda, at ibahagi ang impormasyon, BLAH BLAH BLAH>

     <listahan
        mga 'BCC_Health_Services_FAQs ng pamagat =’
        Template = 'CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[Ibahagi ko]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</listahan>

     <listahan
        mga 'BCC_Notifications ng pamagat =' 
        Template = 'CustomList' 
        listid =’
http://demo2010a:9090/helloworldsandbox[Ibahagi ko]5a5a13d1-877c-41c0-9063-b9612be80d5e’>
     </listahan>

  </web>

</sitecollection>

Inaasahan ko upang linisin ang na XML bago ang lahat ay sinabi at tapos na.

Gusto kong makakuha ng ganap na impormasyon at sa isang control Treeview.  Hindi eksakto lupa mapanira bagay-bagay.

Ang hamon na Ininom ko ang sa dito ay upang ikonekta ang tree view sa isang XML ng control Data Source sa halip ng mano-mano pagbuo aking mga treenodes bilang ko bang tawirin ang tree.  Ginawa ko ito bahagyang dahil kusa ako ng paggawa ng mga bagay na mahirap sa aking sarili (ito ay isang proyekto ng pag-aaral pagkatapos ng lahat) at bahagyang dahil mayroon akong ang malabo paniwala na ito na gusali up ng mga nodes puno bilang ko tawirin tree isn'ta magandang ideya para sa pangmatagalang.

Ang problema sa diskarte na ito ay na ang mga kontrol ng Treeview ay hindi malaman tungkol sa mga mabuting katangian sa ang mga kagiliw-giliw na nodes tulad ng "listahan" o "web" kaya ito ay nagpapakita ng output na ito sa pamamagitan ng default:

 

image

Iyan ay hindi kapaki-pakinabang.  Ito ay kung saan ang TreeNodeBinding klase tumutulong.  Maaari ko bang gamitin ito upang sabihin sa Treeview control kung paano ito dapat kahulugan ng XML.  Narito ang isang halimbawa:

tnb = bagong TreeNodeBinding();
tnb.DataMember = "list"; // Ito ay ang mga label sa xml para sa isang site.
tnb.TargetField = "listid";
tnb.ValueField = "title";
tnb.ToolTipField = "Template";

Ang nagbubuklod ito ay nagsasabi sa treeview na kapag ito nahahanap <listahan> node sa ang XML, ilapat ang mga bindings para TargetField, ValueField at ToolTipField.  Sa maaaring app, mapa mga ito bilang mga sumusunod:

  • TargetField: Kapag ang isang tao pag-click sa isang node na halaga, ito ay kung ano ang makukuha mo para sa SelectedNode.Value.  Ito ay hindi nalilito sa ...
  • ValueField: Ito ay kung ano ang gusto mong Treeview ang upang ipakita sa mga gumagamit.
  • ToolTipField: Ang halaga mula sa XML na gusto mo bilang isang Tooltip.

Magdagdag na TreeNodebinding sa DataBindings ng tree view at makakuha ka ng output tulad nito:

 

image

Kukunin ko na magkaroon ng higit sa lahat ng ito habang patuloy ako sa proyekto at sa huli ay ilagay ito sa Codeplex.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

3 ano sa tingin mo "Paggawa sa Sa TreeNodeBinding sa ang ASP.NET Treeview Control

  1. Pingback: Tweets that mention Working With TreeNodeBinding in the ASP.NET Treeview Control « Paul Galvin's SharePoint Space -- Topsy.com

  2. Holger

    Hi Paul,

    I just checked that myself. It worked as far as you described that even if I don’t get that information from your site (what a pity :-)).
    The point I am interested in is, I tried to make the structure lazy loading with the PopulateOnDemand property. Otherwise the treeview load the complete structure in a whole which I would like to avoid. This property PopulateOnDemand seems not to have any effect.

    Also the treeview does not save any expand/ collapse state information.

    Did you solve these issues?

    Regards

    Holger

    Sumagot
    1. Paul Galvin Mag-post ng may-akda

      I know you posted this comment a long time ago. Sorry for never responding. I assume that you got your solution long since :).

      Sumagot

-Iwan ng sagot

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan *