Archifau Tagiau: Treeview

Gweithio Gyda TreeNodeBinding yng Ngorchymyn Rheoli Treeview ASP.NET

Byddaf i wedi bod yn gweithio ar yr hyn yr wyf yn gobeithio fod yn fuan-ryddhau CodePlex prosiect sy'n darparu ychydig integredig braf o rannau we siarad â'i gilydd trwy ddarparwr / defnyddwyr cysylltiadau er mwyn edrych i mewn i safle SharePoint o dan y cloriau.  (Mae hyn wedi cael ei wneud yn sicr cyn, ond mae hwn yn brosiect dysgu cymaint ag unrhyw beth arall).  Mae hyn i fod i gymryd lle y fforiwr ffenestri barn SharePoint 2010 llyfrgelloedd ddogfen.

Mae'r cod yn yr alwad ailadroddus arferol ar lawr y SPWeb a SPLists o fan cychwyn penodol.  Mae'r gwrthrych sy'n gwneud popeth a tramwyo yn adeiladu sefydlu llinyn XML sy'n edrych yn debyg i hyn:

<sitecollection url =’http://demo2010a:9090′>
 
<we
     title = 'Helo Byd Pwll tywod' 
     Templed = 'Mae safle ar gyfer timau yn gyflym drefnu, awdur, a rhannu gwybodaeth, Blah blah blah '>

     <rhestr
        title = 'BCC_Health_Services_FAQs’
        Templed = 'CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[Yr wyf fi]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</rhestr>

     <rhestr
        title = 'BCC_Notifications' 
        Templed = 'CustomList' 
        listid =’
http://demo2010a:9090/helloworldsandbox[Yr wyf fi]5a5a13d1-877c-41c0-9063-b9612be80d5e’>
     </rhestr>

  </we>

</sitecollection>

Yr wyf yn disgwyl i lanhau bod XML cyn i'r holl sy'n cael ei ddweud ac wedi gwneud.

Yr wyf am y pen draw, gael yr wybodaeth honno i fyny ac i mewn i reolaeth Treeview.  Ddim yn union y ddaear stwff chwalu.

Yr her ar Cymerais yma oedd i gysylltu farn goeden i reoli Ffynhonnell Data XML yn hytrach na llaw adeiladu fy treenodes gan fy mod yn croesi y goeden.  Fe wnes i hyn yn rhannol oherwydd fy mod i'n gwneud pethau yn fwriadol galetach ar fy hun (hwn yn brosiect dysgu ar ôl yr holl) ac yn rhannol oherwydd bod gen i syniad hwn amwys nad oes modd adeiladu i fyny nodau goeden gan fy mod yn croesi y goeden yn syniad da ar gyfer y tymor hir.

Y broblem gyda'r dull hwn yw nad yw'r rheolaeth Treeview yn gwybod am y nodweddion da ar y nodau diddorol fel "rhestr" neu "we" felly ei fod yn dangos yr allbwn hwn yn ddiofyn:

 

image

Nid yw hynny'n ddefnyddiol.  Dyma lle y dosbarth TreeNodeBinding yn helpu.  Gallaf ddefnyddio hwn i ddweud wrth y rheolaeth Treeview sut y dylai ddehongli'r XML.  Dyma enghraifft:

tnb = newydd TreeNodeBinding();
tnb.DataMember = "rhestr"; // Dyma'r label yn y xml ar gyfer safle.
tnb.TargetField = "ListId";
tnb.ValueField = "Teitl";
tnb.ToolTipField = "Template";

Mae hyn yn gyfrwymol yn dweud wrth y treeview hynny pan fydd yn dod o hyd i <rhestr> nod yn y XML, wneud cais am y rhwymiadau TargetField, ValueField a ToolTipField.  Ym mis Mai app, Map y rhain fel a ganlyn:

  • TargetField: Rhywun chleciau pan ar werth nod, dyma beth y byddwch yn ei gael ar gyfer SelectedNode.Value.  Nid yw hyn yn cael ei drysu gyda ...
  • ValueField: Mae hyn yn yr hyn yr ydych am i'r Treeview i arddangos i'r defnyddiwr.
  • ToolTipField: Mae'r gwerth o'r XML a 'ch angen fel cyngor offer.

Ychwanegwch y TreeNodebinding i DataBindings farn goeden ac rydych yn cael allbwn fel hyn:

 

image

Bydd gen i fwy o wybodaeth am hyn i gyd gan fy mod yn parhau ar y prosiect a rhoi hyn yn y pen draw i fyny ar Codeplex.

</diwedd>

Tanysgrifio i fy mlog.

Dilynwch fi ar Twitter yn http://www.twitter.com/pagalvin