Control delegado (creación de plantillas de control)

Última modificación: jueves, 01 de octubre de 2009

Hace referencia a: SharePoint Foundation 2010

Microsoft SharePoint Foundation implementa un mecanismo sencillo para establecer controles de candidatos para una funcionalidad determinada y proporciona un mecanismo para elegir un proveedor único de funcionalidad. Mediante una característica, es posible identificar controles y plantillas de control que actúan como candidatos para una funcionalidad elegida.

Los controles se identifican según la funcionalidad que proporcionan. Los controles para estas funcionalidades pueden registrarse a través de elementos de característica. Deberá especificar el tipo de control que se usará, un número de secuencia y una dirección URL a una plantilla de control o un ensamblado, como se muestra en los siguientes ejemplos de código:

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="https://schemas.microsoft.com/sharepoint/">
  <Control 
    Id="SmallSearchInputBox" 
    Sequence="100" 
    Url="/templates/mysearchcontrol.ascx"/>
</Elements>

El siguiente control reemplaza el control anterior porque especifica una secuencia de número menor.

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="https://schemas.microsoft.com/sharepoint/">
  <Control 
    Id="SmallSearchInputBox" 
    Sequence="50" 
    ControlClass="MySearchControl" 
    ControlAssembly="MyAssembly"/>
</Elements>

El parámetro DelegateControl está incrustado en páginas de SharePoint Foundation y actúa en función de esta información, de la siguiente forma:

<SharePoint:DelegateControl ControlId="SmallSearchInputBox"/>

En tiempo de ejecución, este control acepta la unión de elementos de control declarada en la granja de servidores, la aplicación web, la colección de sitios y los niveles de sitio web. El control que tiene el menor número de secuencia se agrega al árbol de control mediante el parámetro DelegateControl. En el caso de una coincidencia de secuencia, el orden de los controles es arbitrario.

El número de secuencia de DelegateControl puede usarse para integrar un control de búsqueda del portal en SharePoint Foundation. El número de secuencia del control de búsqueda predeterminado es 100, y una búsqueda del portal, por ejemplo, podría activarse en el nivel de colección de sitios con un número de secuencia 50. De este modo, SharePoint Foundation reemplaza el control de búsqueda predeterminado con el control de búsqueda del portal en todos los lugares donde se invoca el control de búsqueda.

Por ejemplo, el siguiente ejemplo muestra el control delegado SmallSearchInputBox:

<SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox"/>

Este control puede crear una instancia de un candidato de control personalizado como el siguiente:

<MySearch:SuperSearchControl/>

El control de delegado Principal establece las propiedades en el control personalizado. Utilice el elemento Propiedad en DelegateControl para establecer las propiedades de controles personalizados asociados, utilizando la reflexión.

Nota

Si se establece la propiedad AllowMultipleControls en true, todos los controles de candidato correspondientes que se agregarán a la página como elementos secundarios del control de delegado según el orden especificado por el atributo Sequence.

Un control delegado no puede designarse de forma inherente, ya que éste desconoce el control real del que se crea una instancia dentro de él. Lo mejor que puede hacer es representar el código HTML en tiempo de diseño del control elegido para la instancia en particular. En el mejor de los casos, el diseñador proporciona una opción para "codificar" el control, lo que implica reemplazar SharePoint:DelegateControl con el control actual que se devuelve mediante la infraestructura de características. El programador, a continuación, puede personalizar el control.

Posibles ámbitos:

  • Granja de servidores: sí

  • Aplicación web: sí

  • Colección de sitios: sí

  • Sitio web: sí

Vea también

Tareas

Procedimiento para personalizar un control delegado

Referencia

DelegateControl

Conceptos

Controles de delegación