[SharePoint]如何修改列表的新建菜单图标

MOSS 2007的列表支持多种内容类型,设置了列表的“允许管理内容类型”之后,我们可以在列表的新建菜单看到各种内容类型的菜单项。菜单项的图标不可以自己设置,比较郁闷。比如在一个通知列表,有通知和公告两种内容类型,通知是列表默认就有的,公告是我从通知继承的,那么现在新建菜单这两种内容类型菜单图标都一样,没有一点个性。

如果能够改成下面的效果,就好多了:)

为了解决这个问题,我查了SharePoint SDK文档,Google了半天没找到正规的解决方案。后来Ocean帮我解决了,这里将方法跟大家分享一下!

SharePoint没有提供相应的接口或解决方案来修改新建菜单的图标,目前知道的方法就是用JavaScript找到相应的菜单项进行修改(没办法,只能耍一下流氓了)。下面将方法描述如下:

1. 打开通知列表页面(allitems.aspx),点击“网站操作->编辑页面”菜单;

2. 添加一个“内容编辑器 Web 部件”,并拖动到“通知 Web 部件”下方;

3. 编辑“内容编辑器 Web 部件”,在编辑区域点击“源编辑器...”按钮;

4. 在弹出的对话框中粘贴一下JavaScript代码:

<script language="JavaScript">
var olderSrcImage = "/_layouts/images/MenuNewItem.gif"; //原始图标
var olderText = "公告"; //原始文字
var newSrcImage = "/_layouts/images/MenuNewDiscussion.gif"; //新图标
var menus = document.getElementsByTagName("ie:menuitem");
for (var i=0;i<menus.length;i++) {
    
if (menus[i].iconSrc == olderSrcImage && menus[i].text == olderText) {
         menus[i].iconSrc 
= newSrcImage;
    }
}
</script>


以上代码在具体运用时需要自己调整一下菜单的原始图标地址和文字,还有新的图标地址。

5. 保存并退出编辑模式看看。

这个方法适用于列表和文档库,虽然比较暴力,但也是一种有效的方法。这里感谢Ocean的帮助,想到这么妙的方法!

 

作者:黎波
博客:http://upto.cnblogs.com/
日期:2008年10月27日

posted @ 2008-10-27 20:15  黎波  阅读(1944)  评论(6编辑  收藏  举报