国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

網站地圖

2019-11-14 15:47:21
字體:
來源:轉載
供稿:網友

asp.net提供了網站地圖提供器xmlSiteMapPRovider,使用XmlSiteMapProvider可以從XML文件中獲取網站地圖信息。

XmlSiteMapProvider會從根目錄中尋找名為Web.sitemap的文件來讀取信息,在解析Web.sitemap文件中的網站地圖數據后創建一個網站地圖對象,此網站地圖對象能夠被SiteMapDataSource使用,SiteMapDataSource可以被放置在頁面上的導航控件使用,最終由導航控件把網站的導航信息顯示在頁面上。 

創建網站地圖

使用VS創建的站點地圖文件會自動生成組成網站地圖的基本結構。

創建站點地圖要遵循的原則

  1.網站地圖以<siteMap>元素開始以</siteMap>元素結束。其他信息放在<siteMap>元素和</siteMap>元素之間。

  2.每一頁由<siteMapNode>元素來描述。每一個站點地圖文件定義了一個網站的頁面組織結構,可以使用<siteMapNode>元素向這個組織結構插入一個頁面,頁面包含頁面的名稱、頁面的描述以及URL

  3.<siteMapNode>元素可以嵌套。一個<siteMapNode>元素表示一個頁面,通過嵌套<siteMapNode>元素可以形成樹型結構的頁面組織結構。   

  4.每一個站點地圖都是以單一的<siteMapNode>元素開始的。每一個站點地圖都要包含一個根節點,其他的所有節點都包含在根節點中。

  5.不允許重復的URL在站點地圖文件中,可以沒有URL,但不允許重復的URL出現,因為SiteMapProvider是以集合的形式來存儲節點的,而每項是以URL為索引的。

如果想要在不同的層次引用相同的界面,需要修改URL來實現使用站點地圖文件進行網站的導航。例如:

    <siteMapNode url="~/Form1.aspx?name=name1" title="主頁" descr主頁" />

    <siteMapNode url="~/Form2.aspx?name=name2" title="主頁" description="主頁" />

網站地圖的使用

把站點文件綁定到頁面 

  1. 確定Web.sitemap文件使用到的頁面都存在于網站項目中。

  2. 在頁面上添加一個SiteMapDataSource控件。

  3. 添加一個綁定到SiteMapDataSource控件的導航控件。設置導航的控件的屬性DataSourceIDSiteMapDataSource控件的ID

使用實例1

在普通頁面中綁定站點文件。

新建站點地圖文件Web.sitemap,代碼如下:

創建站點地圖中使用到的頁面,在Default.aspx.cs中添加SiteMapDataSource和TreeView控件,代碼如下:

使用實例2

在母版頁中綁定站點文件

新建站點地圖文件Web.sitemap,代碼如下:

新建母版頁,在母版頁中添加如下代碼:

創建站點地圖中使用到的頁面,在頁面Default.aspx中添加頁面屬性MasterPageFile="~/Navigation.Master",修改頁面Default.aspx,代碼如下:

1 <%@ Page Language="C#" MasterPageFile="~/Navigation.Master" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="Webapplication1.WebForm2" %>2 3 <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server" />4 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"/>
View Code

使用實例3

SiteMapDataSource控件屬性的應用

新建站點地圖文件Web.sitemap,代碼如下:

 1 <?xml version="1.0" encoding="utf-8" ?> 2 <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 3     <siteMapNode url="~/Default.aspx" title="主頁"  description="網站主頁"> 4       <siteMapNode title="圖書" description="圖書內容"> 5         <siteMapNode title="C#" description="C#圖書"> 6           <siteMapNode url="~/WebForm1.aspx" title="輕松學C#" description="輕松學C#"/> 7           <siteMapNode url="~/WebForm2.aspx" title="深入淺出C#" description="深入淺出C#"/> 8         </siteMapNode> 9         <siteMapNode title="C語言" description="C語言圖書">10           <siteMapNode url="~/WebForm3.aspx" title="C語言程序設計" description="C語言程序設計"/>11           <siteMapNode url="~/WebForm4.aspx" title="C語言課程設計" description="C語言程序設計"/>12         </siteMapNode>13         <siteMapNode title="C++" description="C++圖書" >14           <siteMapNode url="~/WebForm5.aspx" title="C++語言程序設計" description="C++語言程序設計"/>15           <siteMapNode url="~/WebForm6.aspx" title="C++語言課程設計" description="C++語言課程設計"/>16         </siteMapNode>17       </siteMapNode>18     </siteMapNode>19 </siteMap>
View Code

新建母版頁,在母版頁中添加如下代碼:

 1 <div> 2         <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" StartFromCurrentNode="true" /> 3         <asp:SiteMapDataSource ID="SiteMapDataSource2" runat="server" StartingNodeUrl="~/Form2.aspx" /> 4         <table> 5             <tr> 6                 <td> 7                     <asp:Table ID="Table1" text="當前頁下的頁面" runat="server" /> 8                     <br /> 9                     <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1"/>10                     <br />11                     <asp:Table ID="Table2" text="固定頁面" runat="server" />12                     <br />13                     <asp:TreeView ID="TreeView2" runat="server" DataSourceID="SiteMapDataSource2"/>14                 </td>15                 <td>16                     <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" />17                 </td>18             </tr>19         </table>20 </div>
View Code

創建站點地圖中使用到的頁面,在頁面Default.aspx中添加頁面屬性MasterPageFile="~/Navigation.Master",修改頁面Default.aspx,代碼如下:

1 <%@ Page Language="C#" MasterPageFile="~/Navigation.Master" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebApplication1.WebForm3" %>2 3 <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server" />4 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server" />
View Code

使用實例4

新建站點地圖文件Web.sitemap,代碼如下:

 1 <?xml version="1.0" encoding="utf-8" ?> 2 <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 3     <siteMapNode url="~/Default.aspx" title="主頁"  description="網站主頁"> 4       <siteMapNode title="圖書" description="圖書內容"> 5         <siteMapNode title="C#" description="C#圖書"> 6           <siteMapNode url="~/WebForm1.aspx" title="輕松學C#" description="輕松學C#"/> 7           <siteMapNode url="~/WebForm2.aspx" title="深入淺出C#" description="深入淺出C#"/> 8         </siteMapNode> 9         <siteMapNode title="C語言" description="C語言圖書">10           <siteMapNode url="~/WebForm3.aspx" title="C語言程序設計" description="C語言程序設計"/>11           <siteMapNode url="~/WebForm4.aspx" title="C語言課程設計" description="C語言程序設計"/>12         </siteMapNode>13         <siteMapNode title="C++" description="C++圖書" >14           <siteMapNode url="~/WebForm5.aspx" title="C++語言程序設計" description="C++語言程序設計"/>15           <siteMapNode url="~/WebForm6.aspx" title="C++語言課程設計" description="C++語言課程設計"/>16         </siteMapNode>17       </siteMapNode>18     </siteMapNode>19 </siteMap>
View Code

創建站點地圖中使用到的頁面,在Default.aspx.cs中添加SiteMapDataSource和TreeView控件,代碼如下:

1 <div>2         <h4>當前節點</h4>3         <asp:Label ID="Label1" runat="server" />4         <h4>子節點</h4>5         <asp:Label ID="Label2" runat="server" />6         <h4>網站地圖</h4>7         <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />8         <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1" />9  </div>
View Code

Default.aspx.cs頁面中的Page_Load事件中添加如下代碼:

 1             try 2             { 3                 string text = ""; 4                 Label1.Text = SiteMap.CurrentNode.Title;//顯示當前節點的標題 5                 if (SiteMap.CurrentNode.HasChildNodes)//判斷當前節點是否存在子節點 6                 { 7                            foreach (SiteMapNode childNodes in 8 SiteMap.CurrentNode.ChildNodes) 9                         text = text + childNodes.Title + "<br/>";10                         }11                 Label2.Text = text;12             }13             catch (System.NullReferenceException ex)14             {15                 Label1.Text = "該節點不在網站地圖中";16             }17             catch (Exception ex)18             {19                 Label1.Text = e.ToString();20             }
View Code


 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台江县| 江孜县| 满城县| 白山市| 金秀| 南靖县| 通河县| 襄汾县| 柯坪县| 保亭| 大洼县| 白水县| 余姚市| 石门县| 澳门| 平邑县| 大宁县| 修武县| 沁水县| 满城县| 绥滨县| 昌黎县| 城固县| 余姚市| 黄梅县| 营口市| 阿瓦提县| 合阳县| 阜新| 敦化市| 清水县| 上犹县| 六枝特区| 洞头县| 壶关县| 桓仁| 鱼台县| 大洼县| 南涧| 大埔县| 左云县|