ASP.NET実践:非階層化コントロールにWebサイトの地図を表示するデータ
2511 ワード
Webサイトの地図データには階層化された情報が含まれており、各ノードには0つ以上のサブノードが含まれています.
ヒント:
次の例のコード使用
クライアントがドロップダウンリストのアイテムを選択すると、ブラウザはすぐに選択されたページにリダイレクトします.この操作は、
上記のコードがテンプレートページに配置されている場合、
ページにサブノードが含まれていない場合、ドロップダウンリストは空になります.クライアントがWebにいない場合に選択する.sitemapファイルに設定
上記コードの実行には以下の条件が必要: 有効なWeb.Sitemapファイルおよびそのファイルを参照し、上記のコードを含むASP.NETファイル.コードを使用するファイルがWebにリストされていない場合.sitemapファイルのノードでは、次のプロパティをコントロールから削除します.
TreeView
およびMenu
コントロールは、データを階層化するために設計されています.ただし、Webサイトの地図データは、非階層化コントロール(例えばDropDownList
、CheckBoxList
、その他の平面データや線形データを表示するコントロール)にバインドすることもできる.ヒント:
SiteMapPath
コントロールとサポートINavigateUIData
インタフェースのコントロールのみが、Webサイトの地図ノードをリンク形式で表示できます.≪インスタンス|Instance|emdw≫
次の例のコード使用
DropDownList
コントロール表示Web.sitemapファイルのWebサイトの地図.クライアントがドロップダウンリストのアイテムを選択すると、ブラウザはすぐに選択されたページにリダイレクトします.この操作は、
OnSelectedIndexChanged
イベントプロセッサでRedirect
メソッドを呼び出すことによって行われる.上記のコードがテンプレートページに配置されている場合、
SiteMapDataSource
コントロールのStartFromCurrentNode
プロパティは、ドロップダウン・リストが現在のページが実行される前に常にWebサイトの地図の内容を表示することを保証します.
<%@ 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
プロパティのノードに表示されるリスト項目は、クライアントがアプリケーションのホームページにリダイレクトされます.コンパイルコード
StartFromCurrentNode="true"