Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Campo WebPartManager.ConnectDisplayMode

 

Publicado: octubre de 2016

Representa el modo de presentación utilizado para mostrar una interfaz de usuario especial (UI) para que los usuarios administrar las conexiones entre WebPart controles. Este campo es de solo lectura.

Espacio de nombres:   System.Web.UI.WebControls.WebParts
Ensamblado:  System.Web (en System.Web.dll)

public static readonly WebPartDisplayMode ConnectDisplayMode

El ConnectDisplayMode campo hace referencia a una personalizada WebPartDisplayMode objeto que se crea y contiene el WebPartManager control. Dado que esto es un objeto estático, puede hacer referencia a él directamente desde el WebPartManager clase sin necesidad de crear una instancia del control.

Cuando los usuarios desean administrar conexiones entre WebPart si los controles de una página Web, un ConnectionsZone zona se ha declarado en la página, pueden cambiar la página en el ConnectDisplayMode modo. El modo de conexión muestra una interfaz de usuario especial para administrar conexiones, que incluye la capacidad de conectar o desconectar controles y editar los detalles de las conexiones existentes.

Si desea proporcionar a los usuarios la capacidad para administrar las conexiones con la interfaz de usuario proporcionada por el conjunto de controles de elementos Web, debe declarar un <asp:connectionszone> elemento en el marcado de una página. A diferencia de los elementos para los demás tipos de WebZone zonas, no es necesario agregar otras etiquetas dentro de este elemento; simplemente se declara el elemento por sí mismo.

En el ejemplo de código siguiente se muestra el uso de la ConnectDisplayMode modo.

El ejemplo de código tiene tres partes:

  • Un archivo de origen que contiene una interfaz y personalizado WebPart controles que pueden formar una conexión.

  • Una página Web que proporciona un interfaz de usuario de conexión y se muestra cómo trabajar con el ConnectDisplayMode modo.

  • Una explicación de cómo ejecutar el ejemplo.

La primera parte del ejemplo de código es un archivo de origen que contiene una interfaz y dos WebPart controles que están diseñados para que se puedan conectar. Para que ejecutar el ejemplo de código, debe compilar este código fuente. Puede compilarlo explícitamente y colocar el ensamblado resultante en la carpeta Bin de su sitio Web o la caché de ensamblados global. Como alternativa, puede colocar el código fuente en la carpeta App_Code de su sitio, donde se compilará dinámicamente en tiempo de ejecución. Este ejemplo de código utiliza el enfoque de compilación dinámica. Para obtener un tutorial que muestra cómo compilar, consulte Walkthrough: Developing and Using a Custom Web Server Control.

namespace Samples.AspNet.CS.Controls
{
  using System;
  using System.Web;
  using System.Web.Security;
  using System.Security.Permissions;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  using System.Web.UI.WebControls.WebParts;

  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public interface IZipCode
  {
    string ZipCode { get; set;}
  }

  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class ZipCodeWebPart : WebPart, IZipCode
  {
    string zipCodeText = String.Empty;
    TextBox input;
    Button send;

    public ZipCodeWebPart()
    {
    }

    // Make the implemented property personalizable to save 
    // the Zip Code between browser sessions.
    [Personalizable()]
    public virtual string ZipCode
    {
      get { return zipCodeText; }
      set { zipCodeText = value; }
    }

    // This is the callback method that returns the provider.
    [ConnectionProvider("Zip Code", "ZipCodeProvider")]
    public IZipCode ProvideIZipCode()
    {
      return this;
    }

    protected override void CreateChildControls()
    {
      Controls.Clear();
      input = new TextBox();
      this.Controls.Add(input);
      send = new Button();
      send.Text = "Enter 5-digit Zip Code";
      send.Click += new EventHandler(this.submit_Click);
      this.Controls.Add(send);
    }

    private void submit_Click(object sender, EventArgs e)
    {
      if (input.Text != String.Empty)
      {
        zipCodeText = Page.Server.HtmlEncode(input.Text);
        input.Text = String.Empty;
      }
    }

  }

  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class WeatherWebPart : WebPart
  {
    private IZipCode _provider;
    string _zipSearch;
    Label DisplayContent;

    // This method is identified by the ConnectionConsumer 
    // attribute, and is the mechanism for connecting with 
    // the provider. 
    [ConnectionConsumer("Zip Code", "ZipCodeConsumer")]
    public void GetIZipCode(IZipCode Provider)
    {
      _provider = Provider;
    }

    protected override void OnPreRender(EventArgs e)
    {
      EnsureChildControls();

      if (this._provider != null)
      {
        _zipSearch = _provider.ZipCode.Trim();
        DisplayContent.Text = "My Zip Code is:  " + _zipSearch;
      }
    }

    protected override void CreateChildControls()
    {
      Controls.Clear();
      DisplayContent = new Label();
      this.Controls.Add(DisplayContent);
    }

  }
}

La segunda parte del ejemplo es una página Web que hospeda los controles personalizados. En el servidor <script> etiquetas en la página son varios métodos que rellenan una lista desplegable con los modos de presentación disponibles en la página. Un usuario puede seleccionar desde la lista desplegable para cambiar el modo de presentación de la página. Uno de los modos de presentación disponibles es conectar el modo de presentación, porque un <asp:connectionszone> elemento se declara en el marcado de la página. Observe que este elemento no contiene otros elementos secundarios; sólo existe para habilitar la interfaz de usuario de administración de conexiones para los usuarios.

El ConnectDisplayMode modo aparece en este ejemplo en dos lugares. Primero, en la Page_Init (método), el modo de conexión se agrega a la lista desplegable de modos de presentación, como el código recorre la colección hace referenciada en el SupportedDisplayModes propiedad. Segundo, el Page_PreRender método comprueba el modo de presentación actual en la página, y si el modo actual es ConnectDisplayMode, se muestra un mensaje en una Label control.

<%@ Page Language="C#" %>
<%@ Register TagPrefix="aspSample" 
    Namespace="Samples.AspNet.CS.Controls" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  protected void Page_Init(object sender, EventArgs e)
  {
    foreach (WebPartDisplayMode mode in mgr.SupportedDisplayModes)
    {
      string modeName = mode.Name;
      if (mode.IsEnabled(mgr))
      {
        ListItem item = new ListItem(modeName, modeName);
        DisplayModeDropdown.Items.Add(item);
      }      
    }
  }

  protected void DisplayModeDropdown_SelectedIndexChanged(object 
    sender, EventArgs e)
  {
    String selectedMode = DisplayModeDropdown.SelectedValue;
    WebPartDisplayMode mode = 
      mgr.SupportedDisplayModes[selectedMode];
    if (mode != null)
      mgr.DisplayMode = mode;
  }

  protected void Page_PreRender(object sender, EventArgs e)
  {
    if (mgr.DisplayMode == WebPartManager.ConnectDisplayMode)
      Label1.Visible = true;
    else
      Label1.Visible = false;
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr" runat="server" />    
      <asp:Label ID="Label1" runat="server" 
        Text="Currently in Connect Display Mode" 
        Font-Bold="true"
        Font-Size="125%" />
      <br />
      <asp:DropDownList ID="DisplayModeDropdown" 
        runat="server" 
        AutoPostBack="true"
        Width="120"
        OnSelectedIndexChanged=
        "DisplayModeDropdown_SelectedIndexChanged">
      </asp:DropDownList>
      <hr />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <aspSample:ZipCodeWebPart ID="zip1" runat="server"
            Title="Zip Code Provider" />
          <aspSample:WeatherWebPart ID="weather1" runat="server" 
            Title="Zip Code Consumer" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:ConnectionsZone ID="ConnectionsZone1" runat="server" />
    </div>
    </form>
</body>
</html>

Después de cargar la página en un explorador, haga clic en la lista desplegable y seleccione Conectar para cambiar la página al modo de conexión. Observe que aparece un mensaje que indica que la página está en modo de presentación de conectarse. Ahora haga clic en el menú de verbos (un símbolo de flecha) en la barra de título de uno de los WebPart controles y, a continuación, haga clic en Conectar en el menú de verbos. Después de la conexión se muestra la interfaz de usuario, haga clic en el vínculo para crear una conexión. Utilice la lista desplegable dentro de la conexión de la interfaz de usuario que aparece, seleccione el otro control que participará en la conexión y haga clic en el Conectar botón. Establecer la conexión. Haga clic en el Cerrar botón y, a continuación, utilice la lista desplegable en la parte superior de la página para devolver la página para examinar el modo de presentación.

.NET Framework
Disponible desde 2.0
Volver al principio
Mostrar: