Поделиться через


Практическое руководство. Отображение данных карты веб-узла в неиерархических серверных веб-элементах управления

Обновлен: Ноябрь 2007

Данные карты веб-узла изначально являются иерархическими, то есть каждый узел может содержать ноль или более дочерних узлов. Элементы управления TreeView и Menu предназначены для работы иерархическими данными. В то же время данные карты веб-узла можно привязать к неиерархическим элементами управления, например к DropDownList, CheckBoxList и другим элементам, отображающим данные в плоском линейном формате.

ms178422.alert_note(ru-ru,VS.90).gifПримечание.

Только элемент управления SiteMapPath и элементы управления, поддерживающие интерфейс INavigateUIData, отображают узлы карты веб-узла в виде ссылок.

Пример

Следующий пример кода использует элемент управления DropDownList для отображения данных карты веб-узла из файла Web.sitemap.

Когда клиент выбирает элемент в раскрывающемся списке, веб-обозреватель перенаправляется на выбранную страницу. Это достигается путем вызова метода Redirect в обработчике событий OnSelectedIndexChanged.

Если поместить этот пример кода на главную страницу, то свойство StartFromCurrentNode в элементе управления SiteMapDataSource будет отслеживать, чтобы раскрывающийся список всегда отображал карту веб-узла, начинающуюся на странице, выполняемой в данный момент.

<%@ Page Language="VB"  AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  Public Sub _OnSelectedIndexChanged(ByVal Sender As Object, ByVal e As EventArgs)
    Response.Redirect(DropDownList1.SelectedItem.Value)
  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:SiteMapDataSource ID="SiteMapDataSource1" Runat="Server"
          StartFromCurrentNode="true"
          ShowStartingNode="false" />
      <asp:DropDownList ID="DropDownList1" Runat="Server" 
          DataSourceID="SiteMapDataSource1"
          AutoPostBack="True" 
          DataTextField="Title" 
          DataValueField="Url"
          OnSelectedIndexChanged="_OnSelectedIndexChanged" >
      </asp:DropDownList>
    </div>
    </form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  void _OnSelectedIndexChanged(Object sender, EventArgs e)
  { 
    Response.Redirect(DropDownList1.SelectedItem.Value);
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>DropDownList Bound to SiteMapDataSource</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:SiteMapDataSource ID="SiteMapDataSource1" Runat="Server"
          StartFromCurrentNode="true"
          ShowStartingNode="false" />
      <asp:DropDownList ID="DropDownList1" Runat="Server" 
          DataSourceID="SiteMapDataSource1"
          AutoPostBack="True" 
          DataTextField="Title" 
          DataValueField="Url"
          OnSelectedIndexChanged="_OnSelectedIndexChanged" >
      </asp:DropDownList>
    </div>
    </form>
</body>
</html>

Если страница не содержит дочерних узлов, то раскрывающийся список будет пуст. Если клиент выбирает элемент, для которого в файле Web.sitemap не задано свойство URL-адреса, то он перенаправляется на домашнюю страницу приложения.

Компиляция кода

  • Для следующего примера требуется файл Web.sitemap, который ссылается на веб-страницу ASP.NET, содержащую данный пример кода. Если этот пример кода необходимо поместить в файл, не указанный в узле файла Web.sitemap, удалите из элемента управления следующее свойство:

    StartFromCurrentNode="true"
    

См. также

Задачи

Практическое руководство. Фильтрация узлов, извлеченных с помощью серверного веб-элемента управления SiteMapDataSource

Основные понятия

Общие сведения об структуре переходов веб-узла ASP.NET

Карты узла ASP.NET

Безопасность системы навигации веб-узла ASP.NET

Безопасность доступа к данным

Другие ресурсы

Безопасность приложений ASP.NET в средах выполнения