一般要在網站上使用Web導覽列,使用SiteMapPath控制項並且搭配Web.sitemap便可以製作出網站導覽列。只要在Web.sitemap建立相對應好的XML檔就可以,但是,若是這些導覽列屬於變動型,每次有變動就要在對Web.sitemap檔案,進行更新也是很麻煩的。因此,把相對的功能與功能頁面連結放入資料庫中,然後動態產生此Web.sitemap檔案,便可以隨時變動Web.sitemap內容符合網站需求
建立XML Writer
1 2 3
| string strPathName = Server.Path("\\") + "Web.sitemap"; Encoding oENC = Encoding.UTF8; XmlTextWriter oXML = new XmlTextWriter(strPathName, oENC);
|
建立主節點
1 2 3 4
| XML.WriteStartDocument(); oXML.WriteStartElement("siteMap"); oXML.WriteStartElement("siteMapNode"); oXML.WriteAttributeString("title", "目前位置");
|
建立第二節點
1 2 3
| oXML.WriteStartElement("siteMapNode"); oXML.WriteAttributeString("title","首頁"); oXML.WriteAttributeString("url", "Default.aspx");
|
從資料庫讀取動態資料結點資料,若是多層架構就需要用多層迴圈做新增節點
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| for (int i = 0; i < dt.Rows.Count; i++) { if (! int.Parse(dt.Rows[i]["AID"].ToString()).Equals(dFirst)) { if (i > 0) { oXML.WriteEndElement(); } oXML.WriteStartElement("siteMapNode"); oXML.WriteAttributeString("title", dt.Rows[i]["AIDName"].ToString()); dFirst = int.Parse(dt.Rows[i]["AID"].ToString()); } oXML.WriteStartElement("siteMapNode"); oXML.WriteAttributeString("title", dt.Rows[i]["BIDName"].ToString()); oXML.WriteAttributeString("url", dt.Rows[i]["BIDUrl"].ToString()); oXML.WriteEndElement(); } oXML.WriteEndElement();
|
結束所有節點
1 2 3 4 5
| oXML.WriteEndDocument(); oXML.Flush(); oXML.Close(); oXML = null;
|