Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

WebPartDisplayModeCollection (Clase)

Contiene una colección de objetos WebPartDisplayMode. Esta clase no puede heredarse.

System.Object
  System.Collections.CollectionBase
    System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection

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

public sealed class WebPartDisplayModeCollection : CollectionBase

El tipo WebPartDisplayModeCollection expone los siguientes miembros.

  NombreDescripción
Propiedad públicaCapacityObtiene o establece el número de elementos que puede contener la colección CollectionBase. (Se hereda de CollectionBase).
Propiedad públicaCountObtiene el número de elementos incluidos en la instancia de CollectionBase. Esta propiedad no se puede invalidar. (Se hereda de CollectionBase).
Propiedad públicaIsReadOnlyObtiene un valor que indica si la colección es de solo lectura.
Propiedad públicaItem[Int32]Obtiene un miembro concreto de la colección en función de su índice.
Propiedad públicaItem[String]Obtiene un miembro específico de la colección en función de un identificador único.
Arriba

  NombreDescripción
Método públicoAddAgrega un objeto WebPartDisplayMode a la colección.
Método públicoClearElimina todos los objetos de la instancia de CollectionBase. Este método no se puede reemplazar. (Se hereda de CollectionBase).
Método públicoContainsDevuelve un valor que indica si existe un objeto WebPartDisplayMode concreto en la colección.
Método públicoCopyToCopia la colección en una matriz de objetos WebPartDisplayMode.
Método públicoEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método públicoGetEnumeratorDevuelve un enumerador que recorre en iteración la instancia de CollectionBase. (Se hereda de CollectionBase).
Método públicoGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoIndexOfDevuelve la posición de un miembro determinado de la colección.
Método públicoInsertInserta un objeto WebPartDisplayMode en la colección, en la posición de índice especificada.
Método públicoRemoveAtQuita el elemento que se encuentra en el índice especificado de la instancia de CollectionBase. Este método no se puede reemplazar. (Se hereda de CollectionBase).
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privadoICollection.CopyToCopia la totalidad de CollectionBase en una matriz Array unidimensional compatible, comenzando en el índice especificado de la matriz de destino. (Se hereda de CollectionBase).
Implementación explícita de interfacesPropiedad privadaICollection.IsSynchronizedObtiene un valor que indica si el acceso a la interfaz CollectionBase está sincronizado (es seguro para subprocesos). (Se hereda de CollectionBase).
Implementación explícita de interfacesPropiedad privadaICollection.SyncRootObtiene un objeto que se puede utilizar para sincronizar el acceso a CollectionBase. (Se hereda de CollectionBase).
Implementación explícita de interfacesMétodo privadoIList.AddAgrega un objeto al final de CollectionBase. (Se hereda de CollectionBase).
Implementación explícita de interfacesMétodo privadoIList.ContainsDetermina si CollectionBase contiene un elemento específico. (Se hereda de CollectionBase).
Implementación explícita de interfacesMétodo privadoIList.IndexOfBusca el objeto Object especificado y devuelve el índice de base cero de la primera aparición en toda la colección CollectionBase. (Se hereda de CollectionBase).
Implementación explícita de interfacesMétodo privadoIList.InsertInserta un elemento en CollectionBase, en el índice especificado. (Se hereda de CollectionBase).
Implementación explícita de interfacesPropiedad privadaIList.IsFixedSizeObtiene un valor que indica si la interfaz CollectionBase tiene un tamaño fijo. (Se hereda de CollectionBase).
Implementación explícita de interfacesPropiedad privadaIList.IsReadOnlyObtiene un valor que indica si CollectionBase es de sólo lectura. (Se hereda de CollectionBase).
Implementación explícita de interfacesPropiedad privadaIList.ItemObtiene o establece el elemento que se encuentra en el índice especificado. (Se hereda de CollectionBase).
Implementación explícita de interfacesMétodo privadoIList.RemoveQuita la primera aparición de un objeto específico de la interfaz CollectionBase. (Se hereda de CollectionBase).
Arriba

La clase WebPartDisplayModeCollection se ha diseñado para que contenga un colección de objetos WebPartDisplayMode. Esta clase la utiliza principalmente el control WebPartManager para administrar colecciones de objetos WebPartDisplayMode.

Un modo de presentación es una vista especial de una página Web que aparece cuando se asigna como modo de presentación actual en la propiedad WebPartManager.DisplayMode. Los modos de presentación se utilizan en el conjunto de controles de elementos Web para crear vistas de página en las que los usuarios pueden llevar a cabo tareas especiales, como editar controles o reorganizar el diseño de una página. El control WebPartManager define varios modos de presentación, incluidos BrowseDisplayMode, DesignDisplayMode, EditDisplayMode, CatalogDisplayMode y ConnectDisplayMode. La propiedad WebPartManager.DisplayModes hace referencia a la colección de modos de presentación.

En cualquier página Web que utilice controles de elementos Web, sólo estarán disponibles ciertos modos de presentación. El modo de exploración predeterminado y el modo de diseño están disponibles casi siempre, pero los demás modos de presentación sólo están disponibles si sus tipos de zona correspondientes están presentes en la página. Para obtener más información, vea la información general de la clase WebPartDisplayMode.

El control WebPartManager mantiene un seguimiento de los modos de presentación disponibles en una página mediante su propiedad SupportedDisplayModes. Esta propiedad hace referencia a un objeto WebPartDisplayModeCollection que contiene todos los modos de presentación compatibles.

La clase WebPartDisplayModeCollection no tiene un constructor expuesto, por lo que no puede crear una instancia propia de este constructor. Si crea un objeto WebPartDisplayMode personalizado y desea que forme parte de la colección de modos de presentación disponibles del control WebPartManager, debe heredar de la clase WebPartManager, reemplazar el método CreateDisplayModes, llamar al método base para crear la colección y, a continuación, agregar cualquier modo de presentación personalizado a la colección mediante su método Add.

La clase WebPartDisplayModeCollection tiene dos propiedades públicas. La propiedad IsReadOnly es una propiedad de sólo lectura que indica si la colección es de sólo lectura. La propiedad Item sobrecargada proporciona acceso a los miembros de la colección.

La clase WebPartDisplayModeCollection también contiene varios métodos. El método Add, que ya se mencionó anteriormente, permite agregar objetos WebPartDisplayMode a la colección. El método Contains determina si existe un modo de presentación determinado en la colección. El método CopyTo copia la colección en una matriz de objetos. El método IndexOf devuelve el índice de un modo de presentación determinado dentro de la colección. Por último, el método Insert permite insertar un objeto de modo de presentación en un determinado índice de la colección.

En el siguiente ejemplo de código se muestra cómo se trabaja con la clase WebPartDisplayModeCollection. El punto clave es que se debe heredar de la clase WebPartManager y reemplazar el método CreateDisplayModes para agregar un objeto WebPartDisplayMode personalizado a la colección WebPartDisplayModeCollection creada por el control WebPartManager.

Este ejemplo de código se compone de cinco partes:

  • Un control de usuario que permite cambiar los modos de presentación en una página de elementos Web.

  • Una página Web que hospeda los demás controles.

  • Un control de usuario que reside en una zona WebPartZone de la página Web y permite a escribir y mostrar el texto en una etiqueta.

  • Un archivo de código fuente que contiene dos controles. Uno es un control WebPartManager personalizado; el otro es un objeto WebPartDisplayMode personalizado que se va a agregar a los modos de presentación predeterminados de la página.

  • Una explicación sobre cómo funciona el ejemplo.

El código fuente de la primera parte del ejemplo de código, el control de usuario que permite cambiar los modos de presentación, proviene de otro tema. Para que este ejemplo de código funcione, es necesario obtener desde el tema Walkthrough: Changing Display Modes on a Web Parts Page el archivo .ascx para el control de usuario y colocarlo en la misma carpeta que la página .aspx del ejemplo.

La segunda parte del ejemplo es la página Web. Contiene dos controles WebPartZone, ambos controles de usuario, y el control WebPartManager personalizado. Observe las directivas Register situadas en la parte superior de la página que van a hacer referencia a los controles de usuario y al espacio de nombres de los controles compilados.


<%@ Page Language="C#" %>
<%@ Register Src="TextDisplaycs.ascx" 
    TagName="TextDisplay" 
    TagPrefix="uc2" %>
<%@ Register Src="DisplayModeMenuCS.ascx" 
    TagName="DisplayModeMenuCS" 
    TagPrefix="uc1" %>
<%@ Register Namespace="Samples.AspNet.CS.Controls" 
    TagPrefix="sample" 
    Assembly="CustomDisplayModeCS"  %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <uc1:DisplayModeMenuCS id="menu1" runat="server" />
    <div>
    <sample:NewWebPartManager runat="server" ID="wpgm1" />
    <br />
    <table style="width: 100%">
      <tr valign="top" align="center" >
        <td style="width: 100px; height: 123px">
          <asp:WebPartZone ID="WebPartZone1" runat="server">
            <ZoneTemplate>
              <uc2:TextDisplay ID="TextDisplay1" runat="server" />
            </ZoneTemplate>
          </asp:WebPartZone>
        </td>
        <td style="width: 100px; height: 123px">
          <asp:WebPartZone ID="WebPartZone2" runat="server" />
        </td>
      </tr>
    </table>
    <br />
    </div>
    </form>
</body>
</html>


La tercera parte del ejemplo es el control de usuario destinado a escribir y mostrar el texto. Observe que en esta parte se utiliza un control MultiView para crear varias vistas de la interfaz de usuario. Una vista se muestra con el botón, mientras que la otra aparece sin botón. Observe que en el método OnPreRender reemplazado, el código comprueba si la página se encuentra en la actualidad en el modo de presentación personalizado, y si es así, muestra la primera vista del control de usuario, que incluye el botón. Si la página no se encuentra en el modo de presentación personalizado (por ejemplo, si la página está en el modo de exploración o de diseño), el botón estará oculto.

Nota de seguridadNota sobre la seguridad

En este ejemplo hay un cuadro de texto que acepta datos del usuario, lo que puede suponer una amenaza para la seguridad. De forma predeterminada, las ASP.NET Web Pages validan los datos escritos por el usuario para comprobar que no incluyen script ni elementos HTML. Para obtener más información, vea Script Exploits Overview.


<%@ Control Language="C#" %>
<%@ Import Namespace="Samples.AspNet.CS.Controls" %>

<script runat="server">
  private string textContent;

  [Personalizable]
  public string TextContent
  {
    get { return textContent; }
    set { textContent = value; }
  }

  protected override void OnPreRender(EventArgs e)
  {
    Label1.Text = this.textContent;
    int viewIndex = 0;

    WebPartManager wpmg = 
      WebPartManager.GetCurrentWebPartManager(this.Page);
    NewWebPartManager myNewWpmg = wpmg as NewWebPartManager;
    if (myNewWpmg != null)
    {
      WebPartDisplayMode mode = 
        myNewWpmg.SupportedDisplayModes[myNewWpmg.InLineEditDisplayMode.Name];
      if (mode != null && myNewWpmg.DisplayMode == mode)
      {
        viewIndex = 1;
      }
    }
    this.MultiView1.ActiveViewIndex = viewIndex;

  }

  protected void Button1_Click(object sender, EventArgs e)
  {
    this.TextContent = TextBox1.Text;

    WebPartManager wpmg = 
      WebPartManager.GetCurrentWebPartManager(this.Page);
    WebPartDisplayMode mode = 
      wpmg.SupportedDisplayModes[WebPartManager.BrowseDisplayMode.Name];
    if (mode != null)
      wpmg.DisplayMode = mode;
  }

</script>
<asp:MultiView ID="MultiView1" runat="server">
    <asp:View ID="View1" runat="server">
        <asp:Label ID="Label1" runat="server" Text="Label" />
    </asp:View>
    <asp:View ID="View2" runat="server">
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" OnClick="Button1_Click" 
          runat="server" Text="Button" />
    </asp:View>
</asp:MultiView>


La parte cuarta del ejemplo es el archivo de código fuente de las dos clases personalizadas. Observe que la clase WebPartManager personalizada reemplaza al método CreateDisplayModes, llama al método base para agregar todos los modos de presentación predeterminados y, a continuación, agrega el modo de presentación personalizado. La clase del modo de presentación personalizado, InLineEditDisplayMode, simplemente hereda de WebPartDisplayMode, establece el nombre del modo de presentación en el constructor y reemplaza una serie de propiedades base para establecer las características de la presentación personalizada.

Para ejecutar el ejemplo de código debe compilar este código fuente. Se puede compilar de manera explícita y colocar el ensamblado resultante en la carpeta Bin del sitio Web o en la caché global de ensamblados. El código fuente también se puede colocar en la carpeta App_Code del sitio Web, donde se compilará dinámicamente en tiempo de ejecución. Para ver un tutorial en el que muestra cómo realizar una compilación, vea Walkthrough: Developing and Using a Custom Server Control.


using System;
using System.Collections.Generic;
using System.Configuration;
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;

namespace Samples.AspNet.CS.Controls
{
  [AspNetHostingPermission(SecurityAction.Demand,
  Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class NewWebPartManager : WebPartManager 
  {
    private static readonly WebPartDisplayMode _inLineEditDisplayMode =
      new InlineWebPartEditDisplayMode();

    public NewWebPartManager() {}

    protected override WebPartDisplayModeCollection CreateDisplayModes() 
    {
      WebPartDisplayModeCollection displayModes = 
        base.CreateDisplayModes();
      displayModes.Add(_inLineEditDisplayMode);
      return displayModes;
    }

    public WebPartDisplayMode InLineEditDisplayMode
    {
      get { return _inLineEditDisplayMode; }
    }

    private sealed class InlineWebPartEditDisplayMode : WebPartDisplayMode
    {
      public InlineWebPartEditDisplayMode()
        : base("Inline Edit Display")
      {
      }
      public override bool AllowPageDesign
      {
        get { return true; }
      }
      public override bool RequiresPersonalization
      {
        get { return true; }
      }
      public override bool ShowHiddenWebParts
      {
        get { return false; }
      }
      public override bool AssociatedWithToolZone
      {
        get { return false; }
      }
      public override bool IsEnabled(WebPartManager webPartManager)
      {
        return true;
      }
    }

  }

}


Para ejecutar este ejemplo de código, cargue la página en un explorador. Observe que la página está actualmente en el modo de exploración, y que no hay ningún botón visible. Mediante el control de lista desplegable Modo de presentación, cambie la página al modo Presentación de edición en línea, y observe que ahora el botón está visible en el control de usuario inferior. Agregue algún texto y haga clic en el botón para actualizar el control. Observe que la presentación de la página vuelve al modo de exploración, que el texto que ha escrito puede verse ahora y que el botón está oculto de nuevo porque la página no se encuentra en el modo de presentación personalizado.

.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft