歡迎光臨 pure C# 技術社群.
登入
|
註冊
pure C# 技術社群
- Microsoft .NET Framework 相關技術非官方討論社群 -
首頁
|
社群
|
搜尋
|
個人設定
|
管理
|
郵件服務
|
Blog
pure C# 技術社群
»
ASP.NET
»
動態修改SiteMapPath路徑
動態修改SiteMapPath路徑
1
2
[第2/2頁 共16項]
18
十月
2006
#9
Re: 動態修改SiteMapPath路徑
a
0.0 (0 人評價)
由
admin
在 15:57 發表
如果把程式改成這樣呢
public partial class News_CompanyNews : System.Web.UI.Page { 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); if (currentNode.Key.EndsWith("CompanyNews.aspx".ToLower())) { currentNode.Title = "修改过的公司新闻"; } else if(currentNode.Key.EndsWith("TechNews.aspx".ToLower())) { currentNode.Title = "修改过的科技新闻"; } else { //不做任何改變,或是把所有node清掉,或是發出Excepton } return currentNode; } }
回覆
|
引用
|
編輯
|
私人訊息
贊助商連結
19
十月
2006
#10
Re: 動態修改SiteMapPath路徑
a
0.0 (0 人評價)
由
壮志
在 08:57 發表
楼上的办法可行,但是有一些弊端:
首先要在一个页面的后台文件中写入其他页面的控制逻辑,不太全理。
就算把这部分提取到一个类中,如果涉及到的页面太多,或者逻辑很复杂,也不太好。
有没有在Sitemappath1_PreRender时再控制里面显示内容的方法?
回覆
|
引用
|
編輯
|
私人訊息
19
十月
2006
#11
Re: 動態修改SiteMapPath路徑
a
0.0 (0 人評價)
由
admin
在 13:54 發表
目前為止SiteMap.SiteMapResolve事件中並沒有控制其他頁面,它只是單純的制定一些SiteMap的規則。(這還蠻符合"SiteMapResolve"的原意)
只不過預設的SiteMapProvider會抓取SiteMap並顯示出來,只要配合BasePage的繼承架構,應該還不至於太離譜。
當然如果你還是希望能有更適合的方式,建議可以朝SiteMapProvider著手,比起企圖在SiteMapPath.PreRender事件中控制顯示內容,不如寫一個自訂的SiteMapProvider指定給SiteMapPath控件
這方面的技巧不是三言兩語說的完的,也許等我哪天有空可以再花點時間仔細研究,到時再發表一些心得來跟大家討論。
回覆
|
引用
|
編輯
|
私人訊息
20
十月
2006
#12
Re: 動態修改SiteMapPath路徑
a
0.0 (0 人評價)
由
壮志
在 10:16 發表
就是说SiteMap是程序运行时通过web.sitemap加载进去的,SiteMapResolve这个事件只要动态修改了SiteMap(整个站点的),而不是修改了页面中的SiteMapPath控件的显示,不知这么理解对不对?
SiteMapProvider这个还没有研究过,有时间了解一下,也期待你的研究结果,:-)
再次感谢楼主的回复。
回覆
|
引用
|
編輯
|
私人訊息
20
十月
2006
#13
Re: 動態修改SiteMapPath路徑
a
0.0 (0 人評價)
由
admin
在 12:00 發表
是的。
另外如果你等不急要快速學習更多關於SiteMapProvider的相關知識,我想要跟你分享一篇還不錯的文章
http://msdn.microsoft.com/msdnmag/issues/06/02/WickedCode/default.aspx
其中的Figure 1(就是那個小得看不清的第一張圖)已經大略的把基本的架構說明的很清楚了,有了正確的觀念要理解其它高級技巧也將更容易。
回覆
|
引用
|
編輯
|
私人訊息
20
十月
2006
#14
Re: 動態修改SiteMapPath路徑
a
0.0 (0 人評價)
由
壮志
在 13:55 發表
好的,谢谢,学习一下
回覆
|
引用
|
編輯
|
私人訊息
14
二月
2007
#15
Re: 動態修改SiteMapPath路徑
a
0.0 (0 人評價)
由
piaoye
在 10:33 發表
如何用treeview與sitemapoath結合起來應用,並做導航條呢?
這個一定要放在同一頁面才可以嗎?
也就是一定要結合master page才可以使用嗎?
回覆
|
引用
|
編輯
|
私人訊息
贊助商連結
03
八月
2008
#16
Re: 動態修改SiteMapPath路徑
a
0.0 (0 人評價)
由
ganzhou001
在 21:42 發表
在SiteMapPath的Init和Unload事件中这么搞一下就ok了,不知道对不对:)
protected void SiteMapPath1_Init(object sender, EventArgs e)
{
SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(this.ModifyPath);
}
protected void SiteMapPath1_Unload(object sender, EventArgs e)
{
SiteMap.SiteMapResolve -= new SiteMapResolveEventHandler(this.ModifyPath);
}
回覆
|
引用
|
編輯
|
私人訊息
1
2
[第2/2頁 共16項]
參考其它主題
如何用c#寫配置動態記憶體
修改
奇怪的路徑問題
您好,第一次来这里,关于sitemappa...
treeview與sitemappath結合顯示站...
請問大家可以寫出從資料庫讀取資料...
動態加入updatepanel
程式執行的所在路徑
C#.NET 程式碼來修改登錄機碼
動態新增GridView如何複製頁面上另...
動態產生CheckBox
如何將這VB的背景顏色語法-->修改成...
如何將這VB的背景顏色語法-->修改成...
CSS動態顯示等級選擇器
用程式動態新增MultiView的頁籤
This Community Server used ASP.NET 2.0 technology.
Copyright © 2006 ****** in development. All rights reserved.