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:
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:
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>
Dilynwch fi ar Twitter yn http://www.twitter.com/pagalvin