WSS3SDK之:如何定制快速启动的显示样式
我们可以通过修改导航控件的属性来定制快速启动。该控件位于default.master母板页文件中,默认部署在
(Local_Drive:\Programe Files\Microsoft Shared\Web Server
Extensions\12\TEMPLATE\GLOBAL)文件夹中。该文件是WSS的母板页,包含了站点的页面布局,包括SharePoint页面
中导航区域的模板。
在母板页里包括了两个控件的模板,这是在现有主页上默认可用的。一个是Microsoft.SharePoint.WebControls.Menu控件,用于在左侧导航区中显示标准的快速启动视图;另一个是Microsoft.SharePoint.WebControls.SPTreeView控件,用于显示站点文件夹视图。我们可以在用户界面上选择究竟显示哪一个视图。
2、选中启用快速启动,来显示快速启动视图,或者选中启用树视图来显示文件夹视图。
作为一个对左侧导航定制的例子,我们可以把快速启动折叠起来,然后设置Menu控 件的属性添加“感应鼠标经过的弹出菜单”(fly-out menu)的方式来显示。这类定制需要我们使用Microsoft Office SharePoint Designer 2007修改default.master,或者创建一个custom.master文件,然后利用对象模型将站点指向新的母版页文件。
2、在母版页库页面中,在下拉菜单中选择在Mirosoft Office SharePoint Designer中编辑。
3、在代码视图里,找到对应的ContentPlaceHolder容器控件,其ID为PlaceHolderLeftNavBar。在PlaceHolderLeftNavBar中,找到AspMenu控件,其ID为QuickLaunchMenu。
4、将Menu控件的StaticDisplayLevels和MaximumDynamicDisplayLevels的值都设为1。如下所示:
2、打开新建的myDefault.master文件,找到对应的ContentPlaceHolder容器控件,其ID为PlaceHolderLeftNavBar。
3、在PlaceHolderLeftNavBar中,找到AspMenu控件,其ID为QuickLaunchMenu。然后将StaticDisplayLevels和MaximumDynamicDisplayLevels的值都设为1。如下所示:
C#
2、在PlaceHolderLeftNavBar中,找到AspMenu控件,其ID为QuickLaunchMenu。然后将SharePoint:AspMenu的起始标签和结束标签都替换成SharePoint:SPTreeView。
3、移除新SPTreeView元素包含的下列LevelMenuItemStyles元素。
SPTreeView控件提供了很多属性,允许我们轻松对其进行定制。
在母板页里包括了两个控件的模板,这是在现有主页上默认可用的。一个是Microsoft.SharePoint.WebControls.Menu控件,用于在左侧导航区中显示标准的快速启动视图;另一个是Microsoft.SharePoint.WebControls.SPTreeView控件,用于显示站点文件夹视图。我们可以在用户界面上选择究竟显示哪一个视图。
选择在站点页面的左侧导航要显示的视图控件
1、选择网站操作中的网站设置,在外观一节中,选择树视图。2、选中启用快速启动,来显示快速启动视图,或者选中启用树视图来显示文件夹视图。
作为一个对左侧导航定制的例子,我们可以把快速启动折叠起来,然后设置Menu控 件的属性添加“感应鼠标经过的弹出菜单”(fly-out menu)的方式来显示。这类定制需要我们使用Microsoft Office SharePoint Designer 2007修改default.master,或者创建一个custom.master文件,然后利用对象模型将站点指向新的母版页文件。
使用SharePoint Designer修改default.mater在站点母版页库中的实例来显示带fly-out菜单的折叠视图
1、选择网站操作中的网站设置,在库一节中,选择母版页。2、在母版页库页面中,在下拉菜单中选择在Mirosoft Office SharePoint Designer中编辑。
3、在代码视图里,找到对应的ContentPlaceHolder容器控件,其ID为PlaceHolderLeftNavBar。在PlaceHolderLeftNavBar中,找到AspMenu控件,其ID为QuickLaunchMenu。
4、将Menu控件的StaticDisplayLevels和MaximumDynamicDisplayLevels的值都设为1。如下所示:
<asp:AspMenu
id="QuickLaunchMenu"
DataSourceId="QuickLaunchSiteMap"
runat="server"
Orientation="Vertical"
StaticDisplayLevels="1"
ItemWrap="true"
MaximumDynamicDisplayLevels="1"
StaticSubMenuIndent="0"
SkipLinkText=""
>
id="QuickLaunchMenu"
DataSourceId="QuickLaunchSiteMap"
runat="server"
Orientation="Vertical"
StaticDisplayLevels="1"
ItemWrap="true"
MaximumDynamicDisplayLevels="1"
StaticSubMenuIndent="0"
SkipLinkText=""
>
5、保存文件,打开网站页面查看效果。
通过创建自定义的母版页文件并使用SharePoint对象模型来显示带fly-out菜单的折叠视图
1、拷贝一份default.master(位于\12\TEMPLATE\GLOBAL文件夹),并重命名为myDefault.master。2、打开新建的myDefault.master文件,找到对应的ContentPlaceHolder容器控件,其ID为PlaceHolderLeftNavBar。
3、在PlaceHolderLeftNavBar中,找到AspMenu控件,其ID为QuickLaunchMenu。然后将StaticDisplayLevels和MaximumDynamicDisplayLevels的值都设为1。如下所示:
<asp:AspMenu
id="QuickLaunchMenu"
DataSourceId="QuickLaunchSiteMap"
runat="server"
Orientation="Vertical"
StaticDisplayLevels="1"
ItemWrap="true"
MaximumDynamicDisplayLevels="1"
StaticSubMenuIndent="0"
SkipLinkText=""
>
4、创建一个网站,在Visual Studio里,使用Microsoft.SharePoint.SPWeb.MasterUrl属性将站点母版页指向自定义的.master文件,如下所示:id="QuickLaunchMenu"
DataSourceId="QuickLaunchSiteMap"
runat="server"
Orientation="Vertical"
StaticDisplayLevels="1"
ItemWrap="true"
MaximumDynamicDisplayLevels="1"
StaticSubMenuIndent="0"
SkipLinkText=""
>
C#
SPWeb subSite = SPControl.GetContextWeb(Context);
subSite.MasterUrl = "/Site/SubSite/_catalogs/masterpage/myDefault.master";
subSite.MasterUrl = "/Site/SubSite/_catalogs/masterpage/myDefault.master";
由于该代码含有变更内容数据库的操作,所以在运行该代码的.aspx页面里,要有一个Microsoft.SharePoint.WebControls.FormDigest控件(可以放在一个WebPart里运行,Web部件页里自带该控件。也可以在一般的aspx页面中的Form标签中添加该控件,以便在页面中运行该代码)。同时,别忘了引用Microsoft.SharePoint和Microsoft.SharePoint.WebControls命名空间。
5、重启IIS,使变更生效。然后打开网站页面查看效果。
用TreeView替换Menu控件
1、打开我们前面创建的myDefault.master文件,找到对应的ContentPlaceHolder容器控件,其ID为PlaceHolderLeftNavBar。2、在PlaceHolderLeftNavBar中,找到AspMenu控件,其ID为QuickLaunchMenu。然后将SharePoint:AspMenu的起始标签和结束标签都替换成SharePoint:SPTreeView。
3、移除新SPTreeView元素包含的下列LevelMenuItemStyles元素。
<LevelMenuItemStyles>
<asp:MenuItemStyle CssClass="ms-navheader"/>
<asp:MenuItemStyle CssClass="ms-navitem"/>
</LevelMenuItemStyles>
<LevelSubMenuStyles>
<asp:SubMenuStyle CssClass="ms-navSubMenu1"/>
<asp:SubMenuStyle CssClass="ms-navSubMenu2"/>
</LevelSubMenuStyles>
4、重启IIS使改动生效。<asp:MenuItemStyle CssClass="ms-navheader"/>
<asp:MenuItemStyle CssClass="ms-navitem"/>
</LevelMenuItemStyles>
<LevelSubMenuStyles>
<asp:SubMenuStyle CssClass="ms-navSubMenu1"/>
<asp:SubMenuStyle CssClass="ms-navSubMenu2"/>
</LevelSubMenuStyles>
SPTreeView控件提供了很多属性,允许我们轻松对其进行定制。