网站建设会计分录怎么做,网站优化文章,宁波网络公司怎么选,滕州网站开发http://www.purecs.net/Threads/t376.aspx在網頁上放置一個SiteMapPath可以提供使用者一個清楚的瀏覽路標指示#xff0c;如果你的SiteMap是靜態不會變動的倒是很簡單#xff0c;只要編寫好一個XML檔放上去#xff0c;其它的事就可以不用管了#xff0c;但是在動態網頁中Si…http://www.purecs.net/Threads/t376.aspx在網頁上放置一個SiteMapPath可以提供使用者一個清楚的瀏覽路標指示如果你的SiteMap是靜態不會變動的倒是很簡單只要編寫好一個XML檔放上去其它的事就可以不用管了但是在動態網頁中SiteMap的路徑可能會隨著不同的情況而有所更動這時預先建立的靜態SiteMap似乎就不怎麼好用了因為你無法事先去預測SiteMap該有哪些路徑(就像現在這個論壇上面的SiteMap)這個時後你必需要用程式動態控制SiteMapPath中Node的連結路徑及顯示的文字現在只要跟著下面的步驟做就可以簡單的做到這個功能。1. 先在Web Form中建立一個ModifyPath方法 看不清楚 | 列印 | 複製1private SiteMapNode ModifyPath(Object sender, SiteMapResolveEventArgs e) private SiteMapNode ModifyPath(Object sender, SiteMapResolveEventArgs e) 2. 在Page_Load 中註冊SiteMapResolve事件給ModifyPath方法 看不清楚 | 列印 | 複製1SiteMap.SiteMapResolve new SiteMapResolveEventHandler(this.ModifyPath); SiteMap.SiteMapResolve new SiteMapResolveEventHandler(this.ModifyPath); 3. 最後在ModifyPath中撰寫動態路徑及所顯示的文字程式碼即可 看不清楚 | 列印 | 複製1private SiteMapNode ModifyPath(object sender, SiteMapResolveEventArgs e) 2{ 3 SiteMapNode currentNode SiteMap.CurrentNode.Clone(true); 4 SiteMapNode modifyNode currentNode; 5 6 modifyNode.Url http://www.bbb.net; 7 modifyNode.Title bbb; 8 9 if ( (modifyNode modifyNode.ParentNode) ! null) 10 { 11 modifyNode.Url http://www.aaa.net; 12 modifyNode.Title aaa; 13 } 14 15 return currentNode; 16} private SiteMapNode ModifyPath(object sender, SiteMapResolveEventArgs e) { SiteMapNode currentNode SiteMap.CurrentNode.Clone(true); SiteMapNode modifyNode currentNode; modifyNode.Url http://www.bbb.net; modifyNode.Title bbb; if ( (modifyNode modifyNode.ParentNode) ! null) { modifyNode.Url http://www.aaa.net; modifyNode.Title aaa; } return currentNode; } 好了你現在應該可以看到一點點成果至少SiteMapPath中的結點能被程式控制了剩下的只需要寫出ModifyPath中真正的取得路徑的程式碼動態修改SiteMapPath就是這麼簡單。 看不清楚 | 列印 | 複製1protected void Page_Load(object sender, EventArgs e) 2{ 3 SiteMap.SiteMapResolve new SiteMapResolveEventHandler(this.ModifyPath); 4} 5 6private SiteMapNode ModifyPath(object sender, SiteMapResolveEventArgs e) 7{ 8 SiteMapNode currentNode SiteMap.CurrentNode.Clone(true); 9 SiteMapNode modifyNode currentNode; 10 modifyNode.Url http://www.bbb.net; 11 modifyNode.Title bbb; 12 13 if ( (modifyNode modifyNode.ParentNode) ! null) 14 { 15 modifyNode.Url http://www.aaa.net; 16 modifyNode.Title aaa; 17 } 18 19 return currentNode; 20} protected void Page_Load(object sender, EventArgs e) { SiteMap.SiteMapResolve new SiteMapResolveEventHandler(this.ModifyPath); } private SiteMapNode ModifyPath(object sender, SiteMapResolveEventArgs e) { SiteMapNode currentNode SiteMap.CurrentNode.Clone(true); SiteMapNode modifyNode currentNode; modifyNode.Url http://www.bbb.net; modifyNode.Title bbb; if ( (modifyNode modifyNode.ParentNode) ! null) { modifyNode.Url http://www.aaa.net; modifyNode.Title aaa; } return currentNode; } 那如果是动态的无限级的网站应该怎么做呢,用递归上去做结点吗?可是结点数量不一样啊 Re: 動態修改SiteMapPath路徑 a 0.0 (0 票) 由 admin 在 17:20 發表 SiteMapNode有一個ChildNodes集合屬性包含Add、Insert、Remove、Clear等方法可以用來新增或是刪除結點所以不管是多少層都可以在SiteMapResolve事件中依邏輯增加或減少層級例如你在這個網站上回文時原本的結點應該是pure C# 技術社群 ASP.NET 動態修改SiteMpaPath路徑 回覆文章但是在程式中已經把 回覆文章 這個節點刪除掉了 看不清楚 | 列印 | 複製1//currentNode 為回覆文章 2SiteMapNode currentNode SiteMap.CurrentNode.Clone(true); 3 4if (currentNode.Key.EndsWith(PostEditor.aspx.ToLower())) 5{ 6 //currentNode 為回覆文章的上一層 動態修改SiteMpaPath路徑 7 currentNode currentNode.ParentNode; 8 currentNode.ChildNodes.Clear(); 9} //currentNode 為回覆文章 SiteMapNode currentNode SiteMap.CurrentNode.Clone(true); if (currentNode.Key.EndsWith(PostEditor.aspx.ToLower())) { //currentNode 為回覆文章的上一層 動態修改SiteMpaPath路徑 currentNode currentNode.ParentNode; currentNode.ChildNodes.Clear(); } 所以無論是用遞歸或是任何你想的到的方法都可以只要能自由的新增、刪除、修改結點就沒什麼是做不到的 转载于:https://www.cnblogs.com/Nina-piaoye/archive/2006/10/24/537870.html