2010-03-16 54 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