委派控件(控件模板化)

上次修改时间: 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 应用程序:是

  • 网站集:是

  • 网站:是

请参阅

任务

如何:自定义 Delegate 控件

引用

DelegateControl

概念

委派控件