制,觉得非常有意思,因为它里面使用了类似于portal 的技术,从而给用户以耳目一新的感觉。
由于在 Sharepoint Portal Server 中也有这样的东西,同时也感到了 sharepoint 作为一种共享类型
的服务站点给大家带来的巨大方便,所在准备在 WebPart这个组件上好好看看。但后来由于开
发任务有点紧,就放下了。好在最近1期项目做完了可以休息一下,所以开始研究一下这个东西。
因为以前看惯了sharepoint的菜单后,才发现VS2005 中的WebPart与那个sharepoint的WepPart
不太一样。特别是在WebPartZone菜单下的用户定制很不相同。有关 sharepoint下的菜单订制请
参见http://www.cnblogs.com/ocean/archive/2005/03/17/120093.html。
后来在网上没有见到太多关于VS2005 WebPart控件菜单订制的文章,有的也只是一带而过,
没办法,只能去看MSDN了,好在VS2005中的MSDN有下面的解释:
You can override the OnCreateVerbs method in a derived WebPartZoneBase zone class to add
additional WebPartVerb objects to the collection of standard verbs in your zone.
You can do this by adding verbs to the collection in the Verbs property.
同时示例代码如下:
1
using System;
2
using System.Data;
3
using System.Configuration;
4
using System.Web;
5
using System.Web.Security;
6
using System.Security.Permissions;
7
using System.Collections.Generic;
8
using System.Web.UI;
9
using System.Web.UI.WebControls;
10
using System.Web.UI.WebControls.WebParts;
11
using System.Web.UI.HtmlControls;
12
13
namespace Samples.AspNet.CS.Controls
14
2
3
4
5
6
7
8
9
10
11
12
13
14
我把上面的代码捎作修改为一个控件编译后再加载到一个WEB项目中,结果真的出现了一个MyVerb
菜单项。效果如图1:
代码如下
:My_Calender.cs
1
using System;
2
using System.ComponentModel;
3
using System.Web;
4
using System.Web.Security;
5
using System.Security.Permissions;
6
using System.Web.UI;
7
using System.Web.UI.WebControls;
8
using System.Web.UI.WebControls.WebParts;
9
using System.Web.UI.HtmlControls;
10
11
namespace DotnetPortal.MyWebPart
12
}
2
3
4
5
6
7
8
9
10
11
12
文件:My_WebPartZone.cs
1
using System;
2
using System.Data;
3
using System.Configuration;
4
using System.Web;
5
using System.Web.Security;
6
using System.Security.Permissions;
7
using System.Collections.Generic;
8
using System.Web.UI;
9
using System.Web.UI.WebControls;
10
using System.Web.UI.WebControls.WebParts;
11
using System.Web.UI.HtmlControls;
12
13
namespace DotnetPortal.MyWebPart
14
}
2
3
4
5
6
7
8
9
10
11
12
13
14
然后一不做二不休,把以前经常做的几个自定义控件和一个RSS控件都转为这种WebPart控件。
但这些控件有一些区别,特别是在重写方法时,因为WebPart 要重写RenderContents方法,以提
交内容,而自定义控件是要重写Render(HtmlTextWriter output)方法,另外在属性上要注意WebPart
支持[Personalizable]和[WebBrowsable],以便进行用户自定义数据的保存。最后终于把几个控
件和功能放入到了菜单项上,如图2:
由于还有功能需要完善,所以这次暂不把源码发布出来,希望能尽快完成给大家使用。
相关链接参见:ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref16/html/
M_System_Web_UI_WebControls_WebParts_WebPartZoneBase_OnCreateVerbs_1_2240162f.htm