Использование XML и LINQ в элементах управления TreeView и ListView - Заполнение элемента управления TreeView XML-данными
ОГЛАВЛЕНИЕ
Заполнение элемента управления TreeView XML-данными
Нашей целью является создание веб-страницы, которая перечисляет все филиалы и отделы в виде иерархии в левой части, а принадлежащих сотрудников в правой. До того, как мы сможем отобразить сотрудников нам необходимо будет создать пользовательский интерфейс для перечисления филиалов и отделов. Поскольку существует иерархическая связь между филиалами и отделами, а также потому что у компании может быть неопределенное число филиалов и отделов, элемент управления TreeView является идеальным решением для вывода данной информации.
Элемент управления XmlDataSource позволяет вам с легкостью отображать XML-данные в TreeView. Начните с добавления XmlDataSource на страницу. Далее, установите его свойство DataFile таким образом, чтобы оно указывало на XML-файл источник:
<asp:XmlDataSource ID="treeSource" runat="server" DataFile="~/PhoneBook.xml" />
Сам по себе XmlDataSource не отображает ничего. Он просто осуществляет запрос XML-данных. Чтобы вывести информацию нам нужно добавить элемент управления TreeView и привязать его к XmlDataSource. Перетащите элемент TreeView из Toolbox на страницу и установите его свойство DataSourceID в ID элемента XmlDataSource (treeSource). Далее, создайте TreeNodeBinding для корневого элемента PhoneBook и TreeNodeBindings для дочерних элементов Branch и Department. TreeNodeBinding указывает TreeView какой XML-элемент и как он должен отобразить.
<asp:TreeView ID="tvwPhoneBook" runat="server" DataSourceID="treeSource"
AutoGenerateDataBindings="False">
<DataBindings>
<asp:TreeNodeBinding DataMember="PhoneBook" Text="Phone Book" />
<asp:TreeNodeBinding DataMember="Branch"
FormatString="Branch "{0}"" TextField="name" />
<asp:TreeNodeBinding DataMember="Department"
FormatString="Dpt. "{0}"" TextField="name" />
</DataBindings>
</asp:TreeView>
Запустив страницы мы можем увидеть TreeView с узлами, соответствующими XML-структуре филиалов и отделов. Обратите внимание на то, что TreeView не включает в себя элементы Employee. Это потому, что в TreeNodeBinding нет элементов Employees.
