Я работаю на то, что я надеюсь, будет вскоре освобожден 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» так он показывает этот вывод по умолчанию:
Это не полезно. Это где помогает 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 древовидное представление, и вы получите вывода следующим образом:
Я буду иметь больше на все это, как я по-прежнему в рамках проекта и в конечном итоге поставить этот вопрос на Codeplex.
</конец>
Следуй за мной по щебетать на http://www.twitter.com/pagalvin
Pingback: Tweets, что упоминание работы с TreeNodeBinding в элементе управления ASP.NET Treeview «Paul Galvin SharePoint пространство -- Topsy.com
Привет Павел,
Я просто проверил, что сам. Он работал как вы описали, что даже если я не получаю эту информацию с вашего сайта (Жаль :-)).
Точка, которую я заинтересован в, Я пытался сделать структуру отложенной загрузки с помощью свойства PopulateOnDemand. В противном случае treeview загрузить полную структуру в целом, который я хотел бы избежать. Это свойство PopulateOnDemand кажется, не имеют никакого эффекта.
Также treeview не сохранить любой развернуть / свернуть информацию о состоянии.
Вы решить эти проблемы?
Считает, что
Хольгер
Я знаю, что вам написал этот комментарий долгое время назад. Извините за никогда не отвечать. Я предполагаю, что вы получили ваше решение давно :).