マスターページにSiteMapPathコントロールを配置します。
SiteMapPathコントロールはサイト内における現在のページの位置を上位ページからのリンクリストの形式で表したもので「トピックパス」「パンくずリスト」などと呼ばれます。
SiteMapPathコントロールを使用することでユーザは現在自分がいるサイト内の位置を直感的に把握できます。
以下の構成になるように必要なファイルを作成していきます。
AspNetSampleプロジェクト
|-Top.aspx
|-AspNetSample.Master
|-Web.sitemap
|-SiteMapPathフォルダ
|-ChildA.aspx
|-ChildB.aspx
|-GrandchildA.aspx
|-GrandchildB.aspx
プロジェクト直下にマスターページ[AspNetSample.Master]を作成します。
ヘッダー部分にSiteMapPathコントロールを配置します。
プロジェクト直下に[SiteMapPathフォルダ]を作成します。
[SiteMapPathフォルダ]内に[ChildA.aspx]、[ChildB.aspx]、[GrandchildA.aspx]、[GrandchildB.aspx]を作成します。
マスターページは[AspNetSample.Master]を指定してください。
[ChildA.aspx]のContentPlaceHolderコントロールに[GrandchildA.aspx]へのHyperLinkコントロールを配置します。
[ChildB.aspx]のContentPlaceHolderコントロールに[GrandchildB.aspx]へのHyperLinkコントロールを配置します。
[GrandchildA.aspx]、[GrandchildB.aspx]は何も配置しません。
プロジェクト直下にWebコンテンツフォーム[Top.aspx]を作成します。
マスターページは[AspNetSample.Master]を指定してください。
ContentPlaceHolderコントロールに[ChildA.aspx]と[ChildB.aspx]へのHyperLinkコントロールを配置します。
プロジェクト直下に「新しい項目の追加」より「サイトマップ」を追加します。
プロジェクト直下に「Web.sitemap」が作成されます。
サイトマップはプロジェクト直下に配置する必要があります。
私は最初[SiteMapPathフォルダ]内に作成してしまったためにハマリました。
サイトマップには親ノード、子ノード、孫ノードを入れ子になるように記述します。
siteMapNode要素の属性は
【url属性】
メニューのURLを指定します。
サイトマップ内で一意になる必要があります。
アプリケーションルートからの相対パスを指定します。
【title属性】
SiteMapPathコントロール上で表示されるメニュー名を指定します。
【description属性】
メニュー名にマウスポインタを乗せた時に表示されるツールチップなどに利用されます。
【roles属性】
アクセスを許可するロール名を指定します。
【resourceKey属性】
リソースファイルのキー名を指定します。
SiteMapPathコントロールを利用するには、単にページ上にコントロールを配置するだけでOKです。
SiteMapPathコントロールはデフォルトでサイトマップファイルを読み込み「現在のページのURLとサイトマップファイル内のsiteMapNode要素のurl属性とマッチした箇所」を基点としてリンクリストを作成します。現在のページがサイトマップファイル内に登録されていない場合には、正しく表示されません。
実行してみると「パンくずリスト」が確認できます。
ASP.NETすご~い!!
コードレスでここまでできるんですね。
今までのASPでは考えられないです。
ASPでは動的にHTMLを生成している=プログラミングみたいな感じでしたけど
これでやっとHTMLから開放されて本来のプログラミングに専念できますね。
登録:
コメントの投稿 (Atom)
-
DataTableから重複を除くには と DataTableの集約計算を行う(Compute) を利用して、DataTableをグループ化し集計を行います。 以下のようなデータが入ったDataTableから、Field1とField2で重複を取り除き集計をおこないます。...
-
前回「 PLSQL SELECTの結果を取得する ~取得結果が1行の場合~ 」に続き 今回はSELECTの結果が複数行の場合です。 SELECTの結果が複数行の場合はカーソルを使用します。 カーソルとは SELECTの結果セットに対して、1行ずつデータを取り出し、順次...
-
datatableの集約計算を行うにはDataTable.Compute メソッドを使用します。 Dim As Object '最大値を求める value = datatable.Compute("Max(集計列名)", Nothing) &...
0 件のコメント:
コメントを投稿