Office中国论坛/Access中国论坛

标题: 自定义WebPart菜单 [打印本页]

作者: ocean    时间: 2005-3-17 16:39
标题: 自定义WebPart菜单
***********************************************************************

*                              版权声明

*      此文章为ocean所有,版权归ocean所有,任何网

* 站和 媒体转载必须包含此段声明,否则将视为侵权,作

* 者将保留一切权力。此声明为此文章中不可或缺的一部分。

* 作者网名:ocean

* 作者email:[url=mailtocean@forever.net.cn]ocean@forever.net.cn[/url]

* 作者网站:http://www.oceanstudio.net

*                http://sps.oceanstudio.net

* 作者blog:博客园,http://www.cnblogs.com/ocean

*                     Ocean's blog,http://www.oceanstudio.net/sps/blog

* 此文章发表时间:2005年3月17日

* 此文章源:http://www.cnblogs.com/ocean/archive/2005/03/17/120093.html

************************************************************************

    如何能够在自定义WebPart中的菜单呢?达到下图的效果:





    我还专门提供了一个示例,代码可以点击此处下载。 这个示例本身不是我写的,我只是对其进行了一下包装。

    本来还作了一个演示示例, 但可惜自定义菜单后,匿名用户是无法访问的,所以只能是验证用户才可以。

    同时你可以从 http://www.oceanstudio.net/sps/Lists/webpart/AllItems.aspx 查看其它的WebPart。

    如何来做呢?在WebPart中我们需要重载CreateWebPartMenu()函数,这个函数是用来生成WebPart的下拉菜单的,其中在WebPart中有一个WebPartMenu对象,这个对象就是WebPart的菜单对象。通过this.WebPartMenu.MenuItems就可以得到所有的菜单项目,当然菜单是可以好多级的。生成菜单通过new MenuItem(),添加一个菜单只要通过MenuItems.Add方法即可。我们还可以为菜单添加客户端或者服务端事件。还可以标记菜单,比如那个删除菜单前面打了一个勾,这是通过MenuItem.Checked = true来实现的。废话不多说了,代码如下:



   



<DIV >

<DIV>public override void CreateWebPartMenu()

        {

            //Add a new Menu Item with a client-side handler

            MenuItem myMenuItem = new MenuItem("Client Side Handler", "javascript:alert('test');", "MyMenuItem");

            this.WebPartMenu.MenuItems.Add(myMenuItem);

     

            //Add a handler with a server-side handler

            MenuItem myServerMenuItem = new MenuItem("Server Side Handler","myMenuServerID",new EventHandler(myServerMenuItem_OnClick));

            this.WebPartMenu.Men
作者: ganrong    时间: 2005-3-17 19:02
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3