Sharepoint2010 :Webpart开发

Webpart的生命周期

1.      当一个包含WebPartWSS站点页面被响应请求或者是它被提交到Server端的时候,这时WebPart生存周期开始了

2.      OnInit 初始化,加载相关配置文件 (WebPart任务面板上的属性,样式等配置信息) .

3.      LoadViewState 返回先前最后一次被处理的状态(如webpart是展现,隐藏还是关闭)

4.      CreateChildControls 创建WebPart UI,通过Controls.Add()方法装载Web控件(当Webpart是第一次展现的时候CreateChildControls方法发生在OnLoad方法之前,而经过一次postback之后,它发生在OnLoad方法之后)

5.      OnLoad 从数据库或者其他系统重新获取要展现的数据(如获取数据库连接)

6.      User-Generated Events 响应用户生成事件(如Button Click

7.      RendenContents 生成 html output,实现最终的UI展现(由HTMLTextWriterclass来实现)

8.      SaveViewState 保存控件状态 (ViewState被序列化之后保存在一个hidden field)

9.      Dispose 从内存中移除对象,释放临界资源(如释放数据库连接)

10.  OnUnLoad 最终完成内存清除工作


事件

OnInit  处理控件的初始化

 

OnLoad 处理控件的装载

 

CreateChildControls创建子控件

 

EnsureChildControls  确保CreateChildControls方法被调用,使用该方法来确保在访问控件的数据之前控件已经存在。

 

OnPreRender 处理在呈现控件之前必须完成的任务,例如数据装载。异步页面任务应该从该方法中被启动。

 

Page.PreRenderComplete在所有的控件都完成其OnPreRender方法并且页面已经完成了异步任务的执行之后,将会触发该事件。

 

Render 呈现整个控件,包括外部标签。

 

RenderContents 仅仅呈现控件在外部标签和样式属性内的内容。

 


Asp.net
风格的webpart
开发步骤

1.打开VS2008或者VS2010,点击新建项目,选择类库项目,输入项目名称如:WebParts

2.修改类名称,如修改成:HelloWorld.cs

3.引用System.web,添加命名空间,将HelloWorld类继承:

System.Web.UI.WebControls.WebParts.WebPart,然后重写方法:RenderContents。该方法是将内容输出到控件上的。如:

 

 

 

则部署之后,界面将显示“HellWorld!”

这只是一个简单的webpart,如果想要写控件,然后加载数据,可以在CreateChildControls中编写控件,然后将控件放入,Controls.Add(…),如果要加载数据则在OnPreRender方法中绑定数据,最后在Render方法中呈现整个控件。点击生成,则开发完成。


部署

1.将项目bin下的dll拷贝到要部署的站点(如80)的bin目录下。

2.修改80站点下web.config,在修改之前切忌备份(养成良好习惯)。

  将该程序集添加为安全控件,添加内容如下:

Assembly:是程序集的名称

Namespace:程序集命名控件的名称。

TypeName=*:表示程序集中所有的类

Safe:是否安全控件

3.打开站点80,点击网站设置,以Sharepoint2010做示例。

4.选择库中的“we部件,如:

 

5.你会看到很多webpart,如图:

 

这些都是页面上已经有的webpart,有系统自带的,有自己的。

.dwp的是WSS2.0下的。

.webpart的是WSS3.0及以上版本的。

6.点击新建项目,如:

 

 

找到刚刚我们添加的那个webpart,点击导入库,则webpart就会添加上。如:

 

7.到要添加该webpart的页面,点击编辑页面,选插入,找到杂项,就会看到刚刚添加的那个webpart,点击添加,则会在页面上看到。如:

 

完成了。。。很简单吧。。。

注:此例讲的是手工部署,是为了让读者更加明白部署的原理,还可以通过sharepoint模板建立项目,然后自动部署,其实最终的原理是一样的。

还需要说明的一点是,如果是自动部署,就一定要将 dll 放入 GAC ( 要放入 GAC 中的话,就一定要有强命名 ) ,放入 GAC 中有个好处就是可以这样的话, dll 就可以被多个应用程序所用了

你可能感兴趣的:(Sharepoint2010 :Webpart开发)