Использование XML и LINQ в элементах управления TreeView и ListView
ОГЛАВЛЕНИЕ
В данной статье мы создадим веб-страницу, которая будет отображать содержимое телефонной книги всей компании, где информация находится в XML-файле. Страница рекурсивно будет отображать XML-информацию из телефонной книги при помощи TreeView для того, чтобы перечислять филиалы и отделы, а также ListView - для перечисления сотрудников, принадлежащих выбранному филиалу или отделу. В частности, ListView отобразит сотрудников, принадлежащих выбранному филиалу, а также тех, кто принадлежит всем отделам данного филиала. (В следующей статье мы рассмотрим способ расширения возможностей ListView, позволив пользователю добавлять, редактировать и удалять записи в телефонной книге.) Читайте далее, чтобы узнать больше об этом!
Рабочий пример приложения доступен в конце статьи |
---|
На протяжении данной статьи мы будет рассматривать различные блоки кода и скриншоты приложения. Для этого было использовано приложение, которое вы можете загрузить в конце статьи. Я рекомендую вам скачать приложение, загрузить его в Visual Studio и запустить локально, чтобы увидеть все в действии. После этого можете вернуться к данной статье и следовать действиям, выполняемым в ней. Обратите внимание на то, что многие элементы управления и принципы, обсужденные в статье стали доступны в ASP.NET версии 3.5 - поэтому, приложение не будет работать в Visual Studio 2005 и в предыдущих версиях. Если у вас нет Visual Studio 2008, то вы всегда можете загрузить и установить бесплатную версию Visual Web Developer 2008, которая может быть установлена наряду с другими версиями Visual Studio. |
Исследование источника XML-данных
Данная статья демонстрирует способ отображения XML-данных в веб-странице при помощи элементов управления TreeView и ListView. До того как мы приступим к созданию страницы, давайте уделим пару минут исследованиию структуры XML-данных, которые мы собираемся отображать. Следующая XML-структура представляет собой телефонную книгу сотрудников компании. Компания состоит из филиалов и отделов. Филиал может состоять из отделов, а они, в свою очередь, из других отделов. Сотрудники могут принадлежать любому филиалу или отделу.
XML-данные могут выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<PhoneBook>
<Branch id="1" name="Northern Branch">
<Department id="1" name="Marketing">
<Employee id="1" name="Miroslav" telephone="555-5555" />
<Employee id="2" name="Scott" telephone="555-1111" />
<Department id="2" name="Advertising">
<Employee id="3" name="Chris" telephone="555-2222" />
<Employee id="4" name="Bruce" telephone="555-3333" />
<Employee id="5" name="Sam" telephone="555-4444" />
</Department>
</Department>
<Employee id="6" name="Jisun" telephone="555-9999" />
</Branch>
<Department id="3" name="Executive Team">
<Employee id="7" name="Davis" telephone="555-8888" />
<Employee id="8" name="Kate" telephone="555-9900" />
</Department>
</PhoneBook>
Указанный выше XML код демонстрирует то, что существует северный филиал (Northern Branch) с отделом маркетинга (Marketing). Сотрудники Miroslav и Scott работают в отделе Marketing. Отдел рекламы (Advertising) и принадлежащий ему отдел маркетинга (Marketing) являются местами где работают Chris, Bruce и Sam. Jisun работает в северном филиале (Northern Branch), но он не принадлежит какому-то определенному отделу данного филиала. В отделе исполнительных директоров (Executive Team) работают Davis и Kate - они также не принадлежат ни одному из филиалов.