2010-03-16 102 views
1

我有一個解決方案(WSP),我一直在工作很長一段時間了。我一直在使用內置的工具在我的左側導航菜單中創建分層導航,但我現在想真正定製它。我的菜單看起來有點像這樣:自定義SharePoint導航,鏈接到列表視圖

Menu Header 1 
    Link 1a 
    Link 1b 
Menu Header 2 
    Link 2a 
    Link 2b 

每個鏈接鏈接到一個自定義視圖,全部爲同一個列表。我想要做的是導航如下:

Menu Header 1 (8) 
    Link 1a (3) 
    Link 1b (5) 
Menu Header 2 (12) 
    Link 2a (4) 
    Link 2b (8) 

區別在於,我想顯示每個視圖包含多少個列表項。我確信我將不得不手動編寫代碼,這不是問題 - 但我真的不知道從哪裏開始。

有人能指出我的寫作方向嗎?我在我的項目中使用WSPBuilder - 如果可能的話,我想在我的解決方案中包裝它,如果沒有的話,不用擔心...

感謝您的任何和所有的指針!

回答

1

默認情況下,SharePoint母版頁使用AspMenu控件,該控件僅是ASP.NET Menu控件的薄包裝。 AspMenu類是密封的,但代碼可供下載here。根據代碼,沒有任何東西指向列表,但是可以使用代碼編寫自己的控件,然後將其放入主頁面。這僅僅是測試代碼,但也許像在OnMenuItemDataBound以下將工作:

 SPWeb web = SPContext.Current.Web; 
     SPView view = web.GetViewFromUrl(e.Item.NavigateUrl); 
     int count = view.ParentList.GetItems(view).Count; 
     e.Item.Text += " (" + count.ToString() + ")"; 
+0

Thanks Rich,這似乎讓我朝着正確的方向前進。我已經實現了我自己的菜單控件,所以現在剩下的就是用代碼來分解一些代碼。 – SeanW 2010-03-18 20:03:05

+0

好吧,它的一半作品...我認爲你的答案是正確的,這是正確的地方,正確的方式來做到這一點...但我有一個與計數返回問題。它似乎沒有考慮到這個觀點。我發佈了一個新的問題,因爲它似乎是獨立於導航本身...看看這裏:http://stackoverflow.com/questions/2478555/sharepoints-list-getitemsview-returns-all-items-instead-of -filtered視圖項 – SeanW 2010-03-19 15:39:08