Архива на ознаки: TreeView

Работа со TreeNodeBinding во TreeView ASP.NET контрола

Сум бил работи на она што се надевам ќе биде наскоро објавен CodePlex проект кој обезбедува убав интегриран малку на веб делови разговараат со едни на други преку провајдер / потрошувачите врски за целите на истражување на еден сајт SharePoint под покривката.  (Ова секако е направено пред, но ова е за учење проект колку што било што друго).  Ова е замислена да биде замена за Windows Explorer поглед на SharePoint 2010 документ библиотеки.

Кодот е вообичаениот рекурзивен повик одредување на SPWeb и SPLists од даден почетна точка.  На објектот што го прави сето тоа traversing гради на XML стринг кој изгледа нешто како ова:

<sitecollection url =’HTTP://demo2010a:9090′>
 
<веб-
     title = "Здраво Светот Песок" 
     Дефиниција = 'А сајт за тимови брзо да организира, авторот, и споделување на информации, Бла бла бла ">

     <листа
        BCC_Health_Services_FAQs title = "’
        Дефиниција = 'CustomList’
       
listid =’HTTP://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</листа>

     <листа
        "BCC_Notifications" title = 
        Дефиниција = 'CustomList " 
        listid =’
HTTP://demo2010a:9090/helloworldsandbox[delim]5a5a13d1-877c-41c0-9063-b9612be80d5e’>
     </листа>

  </веб->

</sitecollection>

Очекувам да се исчисти дека XML пред сите е кажано и направено.

Сакам на крајот да се добие таа информација и во treeview контролата.  Не е точно земјата искршената нешта.

Предизвикот Зедов за тука беше да се поврзат преглед на дрвото во XML извор на податоци за контрола, наместо рачно градење на мојот treenodes како што напречни дрвото.  Го направив ова делумно бидејќи јас сум намерно сака да ја работите потешко на себе (ова е учење на проектот по сите) и делумно затоа што имам оваа нејасната претстава дека изградбата на дрво јазли како што напречни дрвото не е добра идеја за долгорочна.

Проблемот со овој пристап е дека treeview контролата не знаат за добри атрибути на интересни јазли како "листа" или "интернет" па тоа покажува ова излез од стандардните:

 

image

Тоа не е корисно.  Ова е местото каде TreeNodeBinding класа им помага.  Можам да го користите овој да му кажете на treeview контролата како тоа треба да го толкува на XML.  Еве еден пример:

tnb = new TreeNodeBinding();
tnb.DataMember = "list"; // Ова е етикета во XML за сајт.
tnb.TargetField = "listid";
tnb.ValueField = "title";
tnb.ToolTipField = "Template";

Ова копче кажува на treeview дека кога таа се наоѓа на <листа> јазол во XML, применуваат поврзувачи за TargetField, ValueField и ToolTipField.  Во мај стан, овие карта како што следува:

  • TargetField: Кога некој ќе кликне на еден јазол вредност, тоа е она што ќе добиете за SelectedNode.Value.  Ова не е да се меша со ...
  • ValueField: Ова е она што го сакате на treeview да се прикаже на корисникот.
  • ToolTipField: Вредноста од XML кој сакате како Tooltip.

Додаваат дека TreeNodebinding да DataBindings на дрвото и ќе добиете излез вака:

 

image

Ќе морам повеќе на сето ова како што продолжи на проектот и на крајот го стави ова горе на CodePlex.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin