Procedimiento para personalizar un control delegado
Última modificación: viernes, 09 de julio de 2010
Hace referencia a: SharePoint Foundation 2010
En este ejemplo se muestra el proceso básico para crear e implementar un control delegado. El control delegado reside en el control AdditionalPageHead de la página. Este registra algunos elementos de ECMAScript (JavaScript, JScript) en la página.
Para crear el control delegado
Inicie Herramientas de desarrollo de SharePoint en Microsoft Visual Studio 2010.
En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto.
En Tipos de proyecto, en Visual Basic o C#, seleccione Proyecto de SharePoint vacío.
Escriba EcmaScriptDelegate como nombre del proyecto. Haga clic en Aceptar.
En el Asistente para la personalización de SharePoint, elija Implementar como solución de granja de servidores. Haga clic en Finalizar.
En el Explorador de soluciones, haga clic con el botón secundario en el proyecto EcmaScriptDelegate. Seleccione Agregar y, a continuación, Nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento, haga clic en el grupo Código y elija la plantilla Clase. Escriba EcmaScriptDelegateControl como Nombre y, a continuación, haga clic en Agregar.
A continuación, debe agregar una referencia a System.Web. En el Explorador de soluciones, haga clic con el botón secundario en la carpeta Referencias y seleccione Agregar referencia. En el cuadro Agregar referencia, haga clic en la pestaña .NET y busque System.Web en la lista. Haga clic en Aceptar.
En el archivo EcmaScriptDelegateControl que aparece, agregue la siguiente instrucción using.
using System.Web.UI.WebControls;
Imports System.Web.UI.WebControls
Cambie la clase base de EcmaScriptDelegateControl a WebControl mediante la modificación de la línea siguiente.
class EcmaScriptDelegateControl : WebControl
Public Class EcmaScriptDelegateControl Inherits WebControl
Agregue el código siguiente para invalidar el método OnLoad.
protected override void OnLoad(EventArgs e) { base.OnLoad(e); }
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs) MyBase.OnLoad(e) End Sub
En el método OnLoad, agregue el código siguiente para poner JavaScript en la página.
string helloAlert = "alert('Hello, world!');"; this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "popup", helloAlert, true);
Dim helloAlert As String = "alert('Hello, world!');" Me.Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "popup", helloAlert, True)
Ya se ha creado el control delegado para el proyecto. A continuación, creará la característica para implementar el control.
Para crear una característica para implementar el control
En el Explorador de soluciones, haga clic con el botón secundario en el proyecto EcmaScriptDelegate, seleccione Agregar y, a continuación, Nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento, elija la plantilla Elemento vacío y escriba EcmaScriptDelegateFeature como el Nombre. Haga clic en Agregar.
Inserte el siguiente XML dentro del elemento Elements. El atributo Id identifica al delegado en el que se representa el control. Los atributos ControlAssembly y ControlClass son exclusivos de su control. Para obtener más información acerca de cómo encontrar el nombre de ensamblado completo, vea Procedimiento para crear una herramienta para obtener el nombre completo de un ensamblado.
<Control Id="AdditionalPageHead" ControlAssembly="EcmaScriptDelegate, Version=1.0.0.0, Culture=neutral, PublicKeyToken=public key token" ControlClass="EcmaScriptDelegate.EcmaScriptDelegateControl">
Ahora tiene el control y la característica que necesita para implementar el control. Los controles requieren una entrada SafeControl en el archivo web.config para ejecutarse en la página. El siguiente procedimiento agrega una entrada SafeControl para el control.
Para agregar una entrada SafeControl
En el Explorador de soluciones, haga clic en EcmaScriptDelegateFeature y seleccione ... en la propiedad Safe Control Entries.
Haga clic en Agregar en el cuadro de diálogo Entradas de controles seguros.
En el cuadro Propiedades, asegúrese de que la propiedad Namespace es el valor correcto. Se trata del espacio de nombres del control. Además, asegúrese de que la propiedad Safe está establecida en true. Haga clic en Aceptar.
Ahora que se agregó la entrada SafeControl, puede implementar la solución.
Para implementar y probar el control delegado
Presione F5 para ejecutar la solución.
Cuando se cargue la página, aparecerá un cuadro de diálogo que dice Hello, world!. Se trata del script que ha agregado el control delegado a la página.