Работа С TreeNodeBinding в ASP.Элемент управления NET Treeview

Я работаю на то, что я надеюсь, будет вскоре освобожден CodePlex проект, который обеспечивает немного хорошо интегрированной веб-частей, общаться между собой через поставщик/потребитель соединения для изучения узла SharePoint под капот.  (Это безусловно было сделано до, но это как что-либо проект обучения).  Это означало для замены для представления проводника windows SharePoint 2010 библиотеки документов.

В коде содержится обычный рекурсивный вызов вниз SPWeb и SPLists с заданной начальной точки.  Объект, который делает это пересечение создает XML-строку, которая выглядит примерно так:

<коллекция_узлов url =’HTTP://demo2010a:9090′>
 
<Web
     название = «Привет мир песочнице» 
     Шаблон =' сайт для команд для быстро организовать, Автор, и обмен информацией, BLAH BLAH BLAH»>

     <список
        Название ='BCC_Health_Services_FAQs’
        Шаблон ='CustomList’
       
ListId =’HTTP://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</список>

     <список
        название = «BCC_Notifications» 
        Шаблон = «CustomList» 
        ListId =’
HTTP://demo2010a:9090/helloworldsandbox[delim]5a5a13d1-877 c-41 c 0-9063-b9612be80d5e’>
     </список>

  </Web>

</коллекция_узлов>

Я надеюсь, что очистить вверх что XML перед все сказано и сделано.

Я хочу, чтобы в конечном итоге получить эту информацию до и в элемент управления Treeview.  Не совсем Земли потрясающий материал.

Я взял на здесь задача подключить древовидное представление элемента управления источником данных XML вместо того, чтобы вручную создания моей treenodes как я проходят по дереву.  Я сделал это отчасти потому, что я сознательно сделать вещи тяжелее на себя (Этот проект рассчитан на обучение после всех) и отчасти потому, что у меня есть этот расплывчатое понятие, что создание узлов дерева как я просматривать дерево не является хорошей идеей в долгосрочной перспективе.

Проблема с этим подходом является, что элемент управления Treeview не знает о хорошей атрибуты на интересные узлах как «список» или «web» так он показывает этот вывод по умолчанию:

 

image

Это не полезно.  Это где помогает TreeNodeBinding класса.  Я могу использовать это рассказать элемента управления Treeview, как следует интерпретировать XML.  Ниже приведен пример:

tnb = новый TreeNodeBinding();
tnb.DataMember = «список»; // Это метка в формате xml для сайта.
tnb.TargetField = «listid»;
tnb.ValueField = «название»;
tnb.ToolTipField = «Шаблон»;

Эта привязка рассказывает treeview, когда он находит <список> узел в XML, применить привязки для TargetField, ValueField и ToolTipField.  В мае ОК, они соотносятся следующим:

  • TargetField: Когда кто-то нажимает на значения узла, Это то, что вы получите за SelectedNode.Value.  Это не следует путать с…
  • ValueField: Это то, что вы хотите Treeview для отображения пользователю.
  • ToolTipField: Значение из XML, который необходимо использовать в качестве всплывающей подсказки.

Добавьте TreeNodebinding DataBindings древовидное представление, и вы получите вывода следующим образом:

 

image

Я буду иметь больше на все это, как я по-прежнему в рамках проекта и в конечном итоге поставить этот вопрос на Codeplex.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

3 мысли о «Работа С TreeNodeBinding в ASP.Элемент управления NET Treeview

  1. Pingback: Tweets, что упоминание работы с TreeNodeBinding в элементе управления ASP.NET Treeview «Paul Galvin SharePoint пространство -- Topsy.com

  2. Хольгер

    Привет Павел,

    Я просто проверил, что сам. Он работал как вы описали, что даже если я не получаю эту информацию с вашего сайта (Жаль :-)).
    Точка, которую я заинтересован в, Я пытался сделать структуру отложенной загрузки с помощью свойства PopulateOnDemand. В противном случае treeview загрузить полную структуру в целом, который я хотел бы избежать. Это свойство PopulateOnDemand кажется, не имеют никакого эффекта.

    Также treeview не сохранить любой развернуть / свернуть информацию о состоянии.

    Вы решить эти проблемы?

    Считает, что

    Хольгер

    1. Пол Galvin сообщение автор

      Я знаю, что вам написал этот комментарий долгое время назад. Извините за никогда не отвечать. Я предполагаю, что вы получили ваше решение давно :).

Оставь ответ

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *