利用DelegateControl包装自定义的用户控件(转)
用户定制Sharepoint网站,在网站外观上可以用Sharepoint Designer进行定制外,在网站的功能定制上最终又落实到编写一个个自定义的实现不同功能的Webpart上来了。
用户编写WebPart可以通过两种方式来进行:
一、可以用真正的纯代码方式来进行,即创建的WebPart类需要继承于System.Web.UI.WebControls.WebParts.WebPart类来进行,在这一过程中用户需要自己编写代码来创建Webpart的用户界面及所需的功能,然后部署到相应的网站上即可。
二、编写用户控件(UserControl),然后用“用户控件包装器”把自定义编写的的UserControl进行包装成Webpart,最后部署到相应的网站上,用“用户控件包装器”来对自定义的用户控件进行包装成WebPart也有两种常用的方式,如下:
1、用家喻户晓的涂老大所创建的“QuickPart”用户控件包装器进行将用户控件包装成WebPart,这个包装过程大家应该非常熟悉了,在此就不多介绍了,今天介绍的重点的时第二种包装方式。
2、这种包装方式,就是利用SharePoint本身自带的用户控件包装器(DelegateControl),Moss2007平台本身也大量引用这种方式来包装用户控件(MOSS2007自带的用户控件目录在C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES)下,我们也可以将编写好的自定义的用户控件拷到这个目录下,然后部署,接下介绍具体操作过程:
(1)、打开VS2005, 新建-->网站(新建一个网站)。
(2)、右击选择新建的网站,选择“添加新项”-->用户控件
(3)、打开创建的用户控件,为了等下部署用户控件的方便,我就把用户控件的功能代码与用户控件的UI代码编写在一起,这个用户控件根据需要编写自定义的功能,在完成之后,把这个用户控件拷到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES这个目录下。
(4)、在创建完用户控件到,接下来再到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES目录下创建一个目录在此目录中创建文件为Feature.xml的文件(必需)如:
<?xml version="1.0" encoding="utf-8" ?>
<Feature Id="My GUID"
Title="My Feature Title"
Scope="Farm"
Description="My Feature Description"
Version="1.0.0.0"
xmlns="http://schemas.microsoft.com/sharepoint/"
>
<ElementManifests>
<ElementManifest Location="MyFeature.xml"/>
</ElementManifests>
</Feature>
Feature.xml文件中的属性描述如下:
Id:表示Feature的ID号为GUID类型,可以用VS里自带的“创建GUID”工具来创建
Title:表示在安装Feature后在指定的网站的功能列表中的显示标题
Scope:为这个Feature的作用范围,是个枚举值Farm,Site,Web
Description:表示在安装Feature后在指定的网站的功能列表中Feature的描述信息
Version:Feature的版本号
xmlns:表示这个Feature的XML文件所处的命名空间
Location:表示这个Feature的真正实现功能的xml
接下创建在Feature.xml功能描述文件中所提及到的用于真正实现这个Featur功能的另一个xml文件MyFeature.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Control Id ="My Control ID"
ControlSrc ="~/_CONTROLTEMPLATES/TSystemHotLinks/My User Control.ascx"
Sequence ="100">
</Control>
</Elements>
属性描述:
Control Id:表示用户控件的在Sharepoint网站的ID号
ControlSrc:表示用户控件所在磁盘下的相对存放位置
创建Feature后,下一步就是安装这个Feature,打开cmd窗体,然后输入如下命令进行安装:
stsadm -o installfeature -filename 自定义的Feature存放目录\Feature.xml
安装成功后,最后用Sharepoint Designer打开指定的网站,然后打开指定的网页或masterpage,在指定位置加上<SharePoint:DelegateControl runat="server" ControlId="My Control ID"/>
后保存修改设置,浏览网站即可
用户编写WebPart可以通过两种方式来进行:
一、可以用真正的纯代码方式来进行,即创建的WebPart类需要继承于System.Web.UI.WebControls.WebParts.WebPart类来进行,在这一过程中用户需要自己编写代码来创建Webpart的用户界面及所需的功能,然后部署到相应的网站上即可。
二、编写用户控件(UserControl),然后用“用户控件包装器”把自定义编写的的UserControl进行包装成Webpart,最后部署到相应的网站上,用“用户控件包装器”来对自定义的用户控件进行包装成WebPart也有两种常用的方式,如下:
1、用家喻户晓的涂老大所创建的“QuickPart”用户控件包装器进行将用户控件包装成WebPart,这个包装过程大家应该非常熟悉了,在此就不多介绍了,今天介绍的重点的时第二种包装方式。
2、这种包装方式,就是利用SharePoint本身自带的用户控件包装器(DelegateControl),Moss2007平台本身也大量引用这种方式来包装用户控件(MOSS2007自带的用户控件目录在C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES)下,我们也可以将编写好的自定义的用户控件拷到这个目录下,然后部署,接下介绍具体操作过程:
(1)、打开VS2005, 新建-->网站(新建一个网站)。
(2)、右击选择新建的网站,选择“添加新项”-->用户控件
(3)、打开创建的用户控件,为了等下部署用户控件的方便,我就把用户控件的功能代码与用户控件的UI代码编写在一起,这个用户控件根据需要编写自定义的功能,在完成之后,把这个用户控件拷到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES这个目录下。
(4)、在创建完用户控件到,接下来再到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES目录下创建一个目录在此目录中创建文件为Feature.xml的文件(必需)如:
<?xml version="1.0" encoding="utf-8" ?>
<Feature Id="My GUID"
Title="My Feature Title"
Scope="Farm"
Description="My Feature Description"
Version="1.0.0.0"
xmlns="http://schemas.microsoft.com/sharepoint/"
>
<ElementManifests>
<ElementManifest Location="MyFeature.xml"/>
</ElementManifests>
</Feature>
Feature.xml文件中的属性描述如下:
Id:表示Feature的ID号为GUID类型,可以用VS里自带的“创建GUID”工具来创建
Title:表示在安装Feature后在指定的网站的功能列表中的显示标题
Scope:为这个Feature的作用范围,是个枚举值Farm,Site,Web
Description:表示在安装Feature后在指定的网站的功能列表中Feature的描述信息
Version:Feature的版本号
xmlns:表示这个Feature的XML文件所处的命名空间
Location:表示这个Feature的真正实现功能的xml
接下创建在Feature.xml功能描述文件中所提及到的用于真正实现这个Featur功能的另一个xml文件MyFeature.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Control Id ="My Control ID"
ControlSrc ="~/_CONTROLTEMPLATES/TSystemHotLinks/My User Control.ascx"
Sequence ="100">
</Control>
</Elements>
属性描述:
Control Id:表示用户控件的在Sharepoint网站的ID号
ControlSrc:表示用户控件所在磁盘下的相对存放位置
创建Feature后,下一步就是安装这个Feature,打开cmd窗体,然后输入如下命令进行安装:
stsadm -o installfeature -filename 自定义的Feature存放目录\Feature.xml
安装成功后,最后用Sharepoint Designer打开指定的网站,然后打开指定的网页或masterpage,在指定位置加上<SharePoint:DelegateControl runat="server" ControlId="My Control ID"/>
后保存修改设置,浏览网站即可