委派控件(控件模板化)
上次修改时间: 2009年10月1日
适用范围: SharePoint Foundation 2010
Microsoft SharePoint Foundation 实现用于声明对特定功能的候选控制的简单机制,并提供一种用于选择单个功能提供程序的机制。可通过功能来标识用作选定功能的候选项的控件和控件模板。
可基于由控件提供的功能来标识控件。可以通过功能元素注册这些功能的控件。指定要使用哪些类型的控件、序列号以及指向控件模板或程序集的 URL,如下面的代码示例所示:
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="https://schemas.microsoft.com/sharepoint/">
<Control
Id="SmallSearchInputBox"
Sequence="100"
Url="/templates/mysearchcontrol.ascx"/>
</Elements>
由于上一个控件指定的序列号较小,因此下面的控件将替换它。
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="https://schemas.microsoft.com/sharepoint/">
<Control
Id="SmallSearchInputBox"
Sequence="50"
ControlClass="MySearchControl"
ControlAssembly="MyAssembly"/>
</Elements>
DelegateControl 嵌入在 SharePoint Foundation 页内,并基于此信息进行操作,如下所示:
<SharePoint:DelegateControl ControlId="SmallSearchInputBox"/>
在运行时,该控件接受在服务器场、Web 应用程序、网站集和网站级别上声明的控件元素的联合。通过 DelegateControl 将具有最低序列号的控件添加到控件树中。对于序列号相同的情况,控件顺序是任意的。
DelegateControl 的序列号可用于集成 SharePoint Foundation 中的门户搜索控件。默认搜索控件的序列号为 100,而在序列号为 50(举例来说)的网站集级别可以激活门户搜索控件。这样,SharePoint Foundation 将在调用搜索控件的所有位置用门户搜索控件替换默认搜索控件。
例如,以下示例演示了 SmallSearchInputBox 委派控件:
<SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox"/>
此控制可能实例化类似于下面的自定义候选控件:
<MySearch:SuperSearchControl/>
父委派控件设置自定义控件的属性。通过使用反射,可使用 DelegateControl 中的 Property 元素来设置关联的自定义控件的属性。
备注
将 AllowMultipleControls 属性设置为 true 可使得按照 Sequence 属性指定的顺序,将所有匹配的候选控件作为委派控件的子级添加到网页中。
委托控制并非原本就是可设计的,因为它不知道在其中被实例化的实际控件。它所能做的就是为特定实例呈现选定控件的设计时 HTML。设计器最多可提供一个选项,以对控件进行"硬编码",也就是说,用通过功能基础结构返回的当前控件替换 SharePoint:DelegateControl。然后,开发人员可自定义控件。
可能的作用域:
场:是
Web 应用程序:是
网站集:是
网站:是