歡迎光臨 pure C# 技術社群. 登入註冊

pure C# 技術社群

- Microsoft .NET Framework 相關技術非官方討論社群 -

您好,第一次来这里,关于sitemappath的问题

  • 1
  • [第1/1頁 共4項]
#1

您好,第一次来这里,关于sitemappath的问题

  • a
 0.0 (0 人評價)
我在用sitemappath的时候,遇到了一个小麻烦,假定我有一个用以表示树型结构的表如下(假定是某种新闻的分类):
id  title  fatherid
1  test1      0
2  test2      0
3  test3      0
4  test1_1   1
5  test1_2   1
6  test2-1   2

这个表通过序号被一个表单调用,比如调用格式为content.aspx?id=1,以此来呈现不同的内容,那么,我要如何做才能用sitemappath生成正确的导航呢,比如如果是
content.aspx?id=1
那么导航应该是home >> test1

如果是
content.aspx?id=4
导航应该是home >> test1 >> test1_1,依次类推

从这里我得到了一些启示http://www.purecs.net/Threads/t376.aspx,但是文中没有给出示例如何才能正确的添加或者删除nodes,那么结合上例如何才能实现我想要的效果呢,谢谢。

  • 回覆
  • |
  • 引用
  • |
  • 編輯
  • |
  • 私人訊息


贊助商連結

#2

Re: 您好,第一次来这里,关于sitemappath的问题

  • a
 0.0 (0 人評價)
alex2006您好,
SiteMap本身就是一個樹狀結構,所以在每個SiteMapNode類別下會有一個ChildNodes類別代表所屬的子節點,ChildNodes就有Add()、Insert()、Remove()、Clear() 等方法可以去修改其子節點,到目前為止你可以暫時將 SiteMap 視為TreeView。
SiteMap 好比是 TreeVew,SiteMapNode 彷彿就是 TreeNode,所以如果將整個資料展開來就像是這個樣子。

home
    |_ test1 _
    |            |_ test1_1
    |            |
    |            |_ test1_2
    |
    |_ test2 _
    |            |_ test2_1
    |
    |_ test3 _
                 |_test3_1
                 |
                 |_test3_2
                 |
                 |_test3_3

然而 SiteMapPaht 控件(不是SiteMap) 不是用來顯示整個Tree結構,它只會顯示路徑重點再於SiteMapResolve事件中最後的 return currentNode;

如果你 return test3_2,就會顯示為 home >> test3 >> test3_2。
再舉一例,如果你 return test1_2,就會顯示為 home >> test1 >> test1_2。

動態修改SiteMapPath路徑一文要表達的就是,在SiteMapResolve事件中建構你的sitemap結構,然後傳回目前所在的節點(currentNode),那麼就可以做到動態Path的目標了。

最後我還要提醒您一下,SiteMap 跟 SiteMapPath控件是不同的東西,不要搞混了。 

  • 回覆
  • |
  • 引用
  • |
  • 編輯
  • |
  • 私人訊息

#3

Re: 您好,第一次来这里,关于sitemappath的问题

  • a
 0.0 (0 人評價)
太感谢了,没想到这么快得到回复,我想我明白了,但是我用google检索了一下其它资料,在试图象"動態修改SiteMapPath路徑"一样在SiteMapResolve事件中创建一个新的sitemapnode时,又遇到一个问题,我不知道如何才能声明一个新的sitemapnode,我尝试过
SiteMapNode m = new SiteMapNode(this , "key", "url", "title");
结果报错,对于第一个参数prvider究竟该如何使用的呢?如有可能,能否在您的"动态修改.."一文的基础上,给出一个添加sitemapnode的实例呢,再次感谢。

  • 回覆
  • |
  • 引用
  • |
  • 編輯
  • |
  • 私人訊息

#4

Re: 您好,第一次来这里,关于sitemappath的问题

  • a
 0.0 (0 人評價)
不清楚你發生的錯誤是什麼,我想我還是做出一個簡單的範例讓你方便比對那裏出了問題。

首先我建立了一個Web.sitemap檔案,內容如下:


接著我依照動態修改SiteMapPath路徑一文中的方法在SiteMap_SiteMapResolve事件中加入一個新的Node。


執行後可以發現在SiteMapPath中成功的顯示了新加入的節點。


  • 回覆
  • |
  • 引用
  • |
  • 編輯
  • |
  • 私人訊息
  • 1
  • [第1/1頁 共4項]