MOSS应用记录--5

今天没怎么做,出去了一趟。接着研究了一下导航:

我们通过自己开发导航控件的方式来实现三级菜单的显示。

写一个类继承自Menu,重写CreateChildControls,从快速启动中读取信息,显示到Menu中。

代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Navigation;
namespace CodeArt.SharePoint.WebParts
{
public class NavigationMenu : Menu
{
protected override void CreateChildControls()
{
if (this.Items.Count > 0)
return;
base.CreateChildControls();
SPWeb web = SPContext.Current.Web;
Microsoft.SharePoint.Navigation.SPNavigation sp = web.Navigation;
BuildMenuItem(sp.QuickLaunch, this.Items);
}
void BuildMenuItem(SPNavigationNodeCollection navNodes, MenuItemCollection menuItems)
{
foreach (SPNavigationNode navNode in navNodes)
{
MenuItem menuItem = new MenuItem();
menuItem.Text = navNode.Title;
menuItem.NavigateUrl = navNode.Url;
menuItems.Add(menuItem);
BuildMenuItem(navNode.Children, menuItem.ChildItems);
}
}
}
}
以上控件继承于Menu,CreateChildControl方法中调用导航API,递归生成菜单项。
将项目编译,将DLL部署到GAC中,然后可以修改母板页,添加NavigationMenu控件。
在母板页的头部添加注册指令:
<%@ Register Tagprefix="CodeArt" Namespace="CodeArt.SharePoint.WebParts" Assembly="CodeArt.SharePoint, Version=1.0.0.0, Culture=neutral, PublicKeyToken=" %>
QuickLaunchNavigationManager控件删掉,添加以下代码:
<CodeArt:NavigationMenu runat="server" ID="navMenu" Width="100%" StaticDisplayLevels="3"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值