Использование 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.