Comparteix a través de


ImportCatalogPart Clase

Definición

Importa un archivo de descripción para un control WebPart (u otro control de servidor ASP.NET que se use como un control WebPart), de modo que los usuarios pueden agregar el control a una página web con valores predefinidos. Esta clase no puede heredarse.

public ref class ImportCatalogPart sealed : System::Web::UI::WebControls::WebParts::CatalogPart
public sealed class ImportCatalogPart : System.Web.UI.WebControls.WebParts.CatalogPart
type ImportCatalogPart = class
    inherit CatalogPart
Public NotInheritable Class ImportCatalogPart
Inherits CatalogPart
Herencia

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar el ImportCatalogPart control mediante declaración y mediante programación en una página web. El ejemplo tiene cuatro partes:

  • Control de usuario que permite cambiar los modos de visualización en una página de elementos web.

  • Página web que contiene un CatalogZone control y un ImportCatalogPart control .

  • Un archivo de código fuente que contiene dos controles personalizados WebPart .

  • Explicación de cómo funciona el ejemplo al cargar la página en un explorador.

La primera parte de este ejemplo de código es el control de usuario que permite a los usuarios cambiar los modos de presentación en una página web. Debe colocar el código fuente siguiente en un archivo y asignarle el nombre Displaymodemenucs.ascx o Displaymodemenuvb.ascx (dependiendo del idioma que use). Para obtener más información sobre los modos de presentación y una descripción del código fuente de este control, vea Walkthrough: Changing Display Modes on a Web Parts Page.

<%@ control language="C#" classname="DisplayModeMenuCS"%>
<script runat="server">
  
 // Use a field to reference the current WebPartManager.
  WebPartManager _manager;

  void Page_Init(object sender, EventArgs e)
  {
    Page.InitComplete += new EventHandler(InitComplete);
    
  }  

  void InitComplete(object sender, System.EventArgs e)
  {
    _manager = WebPartManager.GetCurrentWebPartManager(Page);

    String browseModeName = WebPartManager.BrowseDisplayMode.Name;

    // Fill the dropdown with the names of supported display modes.
    foreach (WebPartDisplayMode mode in _manager.SupportedDisplayModes)
    {
      String modeName = mode.Name;
      // Make sure a mode is enabled before adding it.
      if (mode.IsEnabled(_manager))
      {
        ListItem item = new ListItem(modeName, modeName);
        DisplayModeDropdown.Items.Add(item);
      }
    }

    // If shared scope is allowed for this user, display the scope-switching
    // UI and select the appropriate radio button for the current user scope.
    if (_manager.Personalization.CanEnterSharedScope)
    {
      Panel2.Visible = true;
      if (_manager.Personalization.Scope == PersonalizationScope.User)
        RadioButton1.Checked = true;
      else
        RadioButton2.Checked = true;
    }
    
  }
 
  // Change the page to the selected display mode.
  void DisplayModeDropdown_SelectedIndexChanged(object sender, EventArgs e)
  {
    String selectedMode = DisplayModeDropdown.SelectedValue;

    WebPartDisplayMode mode = _manager.SupportedDisplayModes[selectedMode];
    if (mode != null)
      _manager.DisplayMode = mode;
  }

  // Set the selected item equal to the current display mode.
  void Page_PreRender(object sender, EventArgs e)
  {
    ListItemCollection items = DisplayModeDropdown.Items;
    int selectedIndex = 
      items.IndexOf(items.FindByText(_manager.DisplayMode.Name));
    DisplayModeDropdown.SelectedIndex = selectedIndex;
  }

  // Reset all of a user's personalization data for the page.
  protected void LinkButton1_Click(object sender, EventArgs e)
  {
    _manager.Personalization.ResetPersonalizationState();
  }

  // If not in User personalization scope, toggle into it.
  protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
  {
    if (_manager.Personalization.Scope == PersonalizationScope.Shared)
      _manager.Personalization.ToggleScope();
  }

  // If not in Shared scope, and if user is allowed, toggle the scope.
  protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
  {
    if (_manager.Personalization.CanEnterSharedScope && 
        _manager.Personalization.Scope == PersonalizationScope.User)
      _manager.Personalization.ToggleScope();
  }
</script>
<div>
  <asp:Panel ID="Panel1" runat="server" 
    Borderwidth="1" 
    Width="230" 
    BackColor="lightgray"
    Font-Names="Verdana, Arial, Sans Serif" >
    <asp:Label ID="Label1" runat="server" 
      Text="&nbsp;Display Mode" 
      Font-Bold="true"
      Font-Size="8"
      Width="120" 
      AssociatedControlID="DisplayModeDropdown"/>
    <asp:DropDownList ID="DisplayModeDropdown" runat="server"  
      AutoPostBack="true" 
      Width="120"
      OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
    <asp:LinkButton ID="LinkButton1" runat="server"
      Text="Reset User State" 
      ToolTip="Reset the current user's personalization data for the page."
      Font-Size="8" 
      OnClick="LinkButton1_Click" />
    <asp:Panel ID="Panel2" runat="server" 
      GroupingText="Personalization Scope"
      Font-Bold="true"
      Font-Size="8" 
      Visible="false" >
      <asp:RadioButton ID="RadioButton1" runat="server" 
        Text="User" 
        AutoPostBack="true"
        GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
      <asp:RadioButton ID="RadioButton2" runat="server" 
        Text="Shared" 
        AutoPostBack="true"
        GroupName="Scope" 
        OnCheckedChanged="RadioButton2_CheckedChanged" />
    </asp:Panel>
  </asp:Panel>
</div>
<%@ control language="vb" classname="DisplayModeMenuVB"%>
<script runat="server">
  ' Use a field to reference the current WebPartManager.
  Dim _manager As WebPartManager

  Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs)
    AddHandler Page.InitComplete, AddressOf InitComplete
  End Sub

  Sub InitComplete(ByVal sender As Object, ByVal e As System.EventArgs)
    _manager = WebPartManager.GetCurrentWebPartManager(Page)
      
    Dim browseModeName As String = WebPartManager.BrowseDisplayMode.Name
      
    ' Fill the dropdown with the names of supported display modes.
    Dim mode As WebPartDisplayMode
    For Each mode In _manager.SupportedDisplayModes
      Dim modeName As String = mode.Name
      ' Make sure a mode is enabled before adding it.
      If mode.IsEnabled(_manager) Then
        Dim item As New ListItem(modeName, modeName)
        DisplayModeDropdown.Items.Add(item)
      End If
    Next mode
      
    ' If shared scope is allowed for this user, display the scope-switching
    ' UI and select the appropriate radio button for the current user scope.
    If _manager.Personalization.CanEnterSharedScope Then
      Panel2.Visible = True
      If _manager.Personalization.Scope = PersonalizationScope.User Then
        RadioButton1.Checked = True
      Else
        RadioButton2.Checked = True
      End If
    End If
   
  End Sub

  ' Change the page to the selected display mode.
  Sub DisplayModeDropdown_SelectedIndexChanged(ByVal sender As Object, _
    ByVal e As EventArgs)
    
    Dim selectedMode As String = DisplayModeDropdown.SelectedValue   
    Dim mode As WebPartDisplayMode = _
      _manager.SupportedDisplayModes(selectedMode)
    If Not (mode Is Nothing) Then
      _manager.DisplayMode = mode
    End If

  End Sub
   
  ' Set the selected item equal to the current display mode.
  Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs)
    Dim items As ListItemCollection = DisplayModeDropdown.Items
    Dim selectedIndex As Integer = _
      items.IndexOf(items.FindByText(_manager.DisplayMode.Name))
    DisplayModeDropdown.SelectedIndex = selectedIndex

  End Sub

  ' Reset all of a user's personalization data for the page.
  Protected Sub LinkButton1_Click(ByVal sender As Object, _
    ByVal e As EventArgs)
    
    _manager.Personalization.ResetPersonalizationState()
    
  End Sub

  ' If not in User personalization scope, toggle into it.
  Protected Sub RadioButton1_CheckedChanged(ByVal sender As Object, _
    ByVal e As EventArgs)
    
    If _manager.Personalization.Scope = PersonalizationScope.Shared Then
      _manager.Personalization.ToggleScope()
    End If

  End Sub
   
  ' If not in Shared scope, and if user is allowed, toggle the scope.
  Protected Sub RadioButton2_CheckedChanged(ByVal sender As Object, _
    ByVal e As EventArgs)
    
    If _manager.Personalization.CanEnterSharedScope AndAlso _
      _manager.Personalization.Scope = PersonalizationScope.User Then
      _manager.Personalization.ToggleScope()
    End If

  End Sub

</script>
<div>
  <asp:Panel ID="Panel1" runat="server" 
    Borderwidth="1" 
    Width="230" 
    BackColor="lightgray"
    Font-Names="Verdana, Arial, Sans Serif" >
    <asp:Label ID="Label1" runat="server" 
      Text="&nbsp;Display Mode" 
      Font-Bold="true"
      Font-Size="8"
      Width="120" 
      AssociatedControlID="DisplayModeDropdown"/>
    <asp:DropDownList ID="DisplayModeDropdown" runat="server"  
      AutoPostBack="true" 
      Width="120"
      OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
    <asp:LinkButton ID="LinkButton1" runat="server"
      Text="Reset User State" 
      ToolTip="Reset the current user's personalization data for the page."
      Font-Size="8" 
      OnClick="LinkButton1_Click" />
    <asp:Panel ID="Panel2" runat="server" 
      GroupingText="Personalization Scope"
      Font-Bold="true"
      Font-Size="8" 
      Visible="false" >
      <asp:RadioButton ID="RadioButton1" runat="server" 
        Text="User" 
        AutoPostBack="true"
        GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
      <asp:RadioButton ID="RadioButton2" runat="server" 
        Text="Shared" 
        AutoPostBack="true"
        GroupName="Scope" 
        OnCheckedChanged="RadioButton2_CheckedChanged" />
    </asp:Panel>
  </asp:Panel>
</div>

La segunda parte del ejemplo de código es la página web. En la parte superior de la página hay dos register directivas, una para el control de usuario y otra para el componente compilado que contiene los dos controles personalizados WebPart . Observe que la página tiene una referencia declarativa al ImportCatalogPart control, anidada dentro de la jerarquía adecuada de elementos declarativos. Observe también que se asignan varios valores de propiedad mediante declaración en el <asp:importcatalogpart> elemento . Además, el Button1_Click método actualiza una serie de valores de propiedad en el ImportCatalogPart control .

En el control de WebPartZone la página, se declaran los dos controles personalizados WebPart . El <aspSample:userinfowebpart> control tiene un exportmode="all" atributo en él. Este atributo es necesario para permitir a los usuarios exportar un archivo de descripción para el control, que luego pueden importar otros usuarios que deseen importar el control mediante el archivo de descripción.

Nota

Para permitir que los usuarios de una aplicación de elementos web exportan un archivo de descripción para WebPart los controles, también debe habilitar la característica de exportación en la aplicación web agregando un enableExport="true" atributo al <webParts> elemento (que es un elemento secundario del <system.web> elemento) en el archivo Web.config. La exportación está deshabilitada de forma predeterminada, por lo que si aún no ha habilitado la exportación de la aplicación, edite el archivo Web.config y hágalo ahora.

<%@ page language="c#" %>
<%@ register TagPrefix="uc1" 
  TagName="DisplayModeMenuCS" 
  Src="DisplayModeMenuCS.ascx" %>
<%@ 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">

  // <snippet3>
  protected void Button1_Click(object sender, EventArgs e)
  {
    ImportCatalogPart1.Title = "Import Server Controls";
    ImportCatalogPart1.BrowseHelpText = "Enter the path to a "
      + "description file.";
    ImportCatalogPart1.UploadButtonText = "Upload Description";
    ImportCatalogPart1.UploadHelpText = "Upload a description file.";
    ImportCatalogPart1.ImportedPartLabelText = "Imported Controls";
    ImportCatalogPart1.PartImportErrorLabelText = "An error occurred " 
      + "during the import process.";

  }
  // </snippet3>
  
  protected void Page_Load(object sender, EventArgs e)
  {
    Button1.Visible = false;
  }

  protected void ImportCatalogPart1_PreRender(object sender, 
    EventArgs e)
  {
    Button1.Visible = true;
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head id="Head1" runat="server">
    <title>
      ImportCatalogPart Control
    </title>
  </head>
  <body>
    <form id="form1" runat="server">
      <asp:webpartmanager id="WebPartManager1" runat="server"  />
      <uc1:DisplayModeMenuCS ID="DisplayModeMenu1" runat="server" />
      <asp:webpartzone id="zone1" runat="server" >
        <PartTitleStyle BorderWidth="1" 
          Font-Names="Verdana, Arial"
          Font-Size="110%"
          BackColor="LightBlue" />
        <zonetemplate>
          <aspSample:TextDisplayWebPart 
            runat="server"   
            id="TextDisplayWebPart1" 
            title = "Text Display WebPart" /> 
          <aspsample:userinfowebpart id="userinfo1" runat="server" 
            Title="User Information" exportmode="all" />
        </zonetemplate>
      </asp:webpartzone> 
      <asp:EditorZone ID="EditorZone1" runat="server">
        <ZoneTemplate>
          <asp:PropertyGridEditorPart ID="PropertyGridEditorPart1" 
            runat="server" />
        </ZoneTemplate>
      </asp:EditorZone>
      <asp:CatalogZone ID="CatalogZone1" runat="server">
        <ZoneTemplate>
          <asp:ImportCatalogPart ID="ImportCatalogPart1" 
            runat="server" 
            Title="My ImportCatalogPart" 
            OnPreRender="ImportCatalogPart1_PreRender"
            BrowseHelpText="Type a path or browse to find a control's 
              description file." 
            UploadButtonText="Upload Description File" 
            UploadHelpText="Click the button to upload the description 
              file."
            ImportedPartLabelText="My User Information WebPart" 
            PartImportErrorLabelText="An error occurred while trying 
              to import a description file."  />
        </ZoneTemplate>
      </asp:CatalogZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="Update ImportCatalogPart" 
        OnClick="Button1_Click" />
    </form>
  </body>
</html>
<%@ page language="VB" %>
<%@ register TagPrefix="uc1" 
  TagName="DisplayModeMenuVB" 
  Src="DisplayModeMenuVB.ascx" %>
<%@ register tagprefix="aspSample" 
  Namespace="Samples.AspNet.VB.Controls" %>
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  ' <snippet3>
  Protected Sub Button1_Click(ByVal sender As Object, _
    ByVal e As EventArgs)
      ImportCatalogPart1.Title = "Import Server Controls"
      ImportCatalogPart1.BrowseHelpText = "Enter the path to a " _
        & "description file."
      ImportCatalogPart1.UploadButtonText = "Upload Description"
      ImportCatalogPart1.UploadHelpText = "Upload a description file."
      ImportCatalogPart1.ImportedPartLabelText = "Imported Controls"
      ImportCatalogPart1.PartImportErrorLabelText = "An error occurred " _
        & "during the import process."
  End Sub
  ' </snippet3>

  Protected Sub Page_Load(ByVal sender As Object, _
    ByVal e As EventArgs)
      Button1.Visible = false
  End Sub

  Protected Sub ImportCatalogPart1_PreRender(ByVal sender As Object, _
    ByVal e As EventArgs)
      Button1.Visible = true
  End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>
      ImportCatalogPart Control
    </title>
  </head>
  <body>
    <form id="form1" runat="server">
      <asp:webpartmanager id="WebPartManager1" runat="server"  />
      <uc1:DisplayModeMenuVB ID="DisplayModeMenu1" runat="server" />
      <asp:webpartzone id="zone1" runat="server" >
        <PartTitleStyle BorderWidth="1" 
          Font-Names="Verdana, Arial"
          Font-Size="110%"
          BackColor="LightBlue" />
        <zonetemplate>
          <aspSample:TextDisplayWebPart 
            runat="server"   
            id="TextDisplayWebPart1" 
            title = "Text Display WebPart" /> 
          <aspsample:userinfowebpart id="userinfo1" runat="server" 
            Title="User Information" exportmode="all" />
        </zonetemplate>
      </asp:webpartzone> 
      <asp:EditorZone ID="EditorZone1" runat="server">
        <ZoneTemplate>
          <asp:PropertyGridEditorPart ID="PropertyGridEditorPart1" 
            runat="server" />
        </ZoneTemplate>
      </asp:EditorZone>
      <asp:CatalogZone ID="CatalogZone1" runat="server">
        <ZoneTemplate>
          <asp:ImportCatalogPart ID="ImportCatalogPart1" 
            runat="server" 
            Title="My ImportCatalogPart" 
            OnPreRender="ImportCatalogPart1_PreRender"
            BrowseHelpText="Type a path or browse to find a control's 
              description file." 
            UploadButtonText="Upload Description File" 
            UploadHelpText="Click the button to upload the description 
              file."
            ImportedPartLabelText="My User Information WebPart" 
            PartImportErrorLabelText="An error occurred while trying 
              to import a description file."  />
        </ZoneTemplate>
      </asp:CatalogZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="Update ImportCatalogPart" 
        OnClick="Button1_Click" />
    </form>
  </body>
</html>

La tercera parte del ejemplo de código es el código fuente de los dos WebPart controles. Observe que algunas propiedades de estos controles están marcadas con el WebBrowsable atributo . Esto permite que el PropertyGridEditorPart control genere dinámicamente la interfaz de usuario (UI) para que un usuario edite esas propiedades cuando los controles están en modo de edición. Las propiedades también se marcan con un WebDisplayName atributo para especificar el texto de la etiqueta que aparece junto a cada control de la interfaz de usuario de edición. Para que se ejecute el ejemplo de código, debe compilar este código fuente. Puede compilarlo explícitamente y colocar el ensamblado resultante en la carpeta Bin del sitio web o en la caché global de ensamblados. Como alternativa, puede colocar el código fuente en la carpeta App_Code del sitio, donde se compilará dinámicamente en tiempo de ejecución. En este ejemplo de código se usa la compilación dinámica. Para ver un tutorial que muestra ambos métodos de compilación, vea Walkthrough: Developing and Using a Custom Web Server Control.

Se hace referencia al control personalizado denominado TextDisplayWebPart en la página web con un <aspSample:TextDisplayWebPart> elemento . El otro control, denominado UserInfoWebPart, también se declara inicialmente en la página web, aunque lo quitará más adelante para demostrar la capacidad de importar un archivo de descripción para un control.

using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Security.Permissions;
using System.Web;
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 UserInfoWebPart : WebPart
  {
    HttpServerUtility server = HttpContext.Current.Server;
    private String _userNickName = "Add a nickname.";
    private String _userPetName = "Add a pet name.";
    private DateTime _userSpecialDate = DateTime.Now;
    private Boolean _userIsCurrent = true;
    private JobTypeName _userJobType = JobTypeName.Unselected;
    public enum JobTypeName
    {
      Unselected = 0,
      Support = 1,
      Service = 2,
      Professional = 3, 
      Technical = 4,
      Manager = 5,
      Executive = 6
    }
    Label NickNameLabel;
    Label PetNickNameLabel;
    Label SpecialDateLabel;
    CheckBox IsCurrentCheckBox;
    Label JobTypeLabel;

    // Add the Personalizable and WebBrowsable attributes to the  
    // public properties, so that users can save property values  
    // and edit them with a PropertyGridEditorPart control.
    [Personalizable(), WebBrowsable, WebDisplayName("Nickname")]
    public String NickName
    {
      get 
      { 
        object o = ViewState["NickName"];
        if (o != null)
          return (string)o;
        else
          return _userNickName;        
      } 

      set { _userNickName = server.HtmlEncode(value); }
    }

    [Personalizable(), WebBrowsable, WebDisplayName("Pet Name")]
    public String PetName
    {
      get 
      { 
        object o = ViewState["PetName"];
        if (o != null)
          return (string)o;
        else
          return _userPetName;        
      }

      set { _userPetName = server.HtmlEncode(value); }
    }

    [Personalizable(), WebBrowsable(), WebDisplayName("Special Day")]
    public DateTime SpecialDay
    {
      get
      {
        object o = ViewState["SpecialDay"];
        if (o != null)
          return (DateTime)o;
        else
          return _userSpecialDate;
      }

      set { _userSpecialDate = value; }
    }

    [Personalizable(), WebBrowsable(), WebDisplayName("Job Type")]
    public JobTypeName UserJobType
    {
      get
      {
        object o = ViewState["UserJobType"];
        if (o != null)
          return (JobTypeName)o;
        else
          return _userJobType;
      }

      set { _userJobType = (JobTypeName)value; }
    }

    [Personalizable(), WebBrowsable(), WebDisplayName("Is Current")]
    public Boolean IsCurrent
    {
      get
      {
        object o = ViewState["IsCurrent"];
        if (o != null)
          return (Boolean)o;
        else
          return _userIsCurrent;
      }

      set { _userIsCurrent = value; }
    }

    protected override void CreateChildControls()
    {
      Controls.Clear();

      NickNameLabel = new Label();
      NickNameLabel.Text = this.NickName;
      SetControlAttributes(NickNameLabel);

      PetNickNameLabel = new Label();
      PetNickNameLabel.Text = this.PetName;
      SetControlAttributes(PetNickNameLabel);

      SpecialDateLabel = new Label();
      SpecialDateLabel.Text = this.SpecialDay.ToShortDateString();
      SetControlAttributes(SpecialDateLabel);

      IsCurrentCheckBox = new CheckBox();
      IsCurrentCheckBox.Checked = this.IsCurrent;
      SetControlAttributes(IsCurrentCheckBox);

      JobTypeLabel = new Label();
      JobTypeLabel.Text = this.UserJobType.ToString();
      SetControlAttributes(JobTypeLabel);

      ChildControlsCreated = true;
    }

    private void SetControlAttributes(WebControl ctl)
    {
      ctl.BackColor = Color.White;
      ctl.BorderWidth = 1;
      ctl.Width = 200;
      this.Controls.Add(ctl);
    }

    protected override void RenderContents(HtmlTextWriter writer)
    {
      writer.Write("Nickname:");
      writer.WriteBreak();
      NickNameLabel.RenderControl(writer);
      writer.WriteBreak();
      writer.Write("Pet Name:");
      writer.WriteBreak();
      PetNickNameLabel.RenderControl(writer);
      writer.WriteBreak();
      writer.Write("Special Date:");
      writer.WriteBreak();
      SpecialDateLabel.RenderControl(writer);
      writer.WriteBreak();
      writer.Write("Job Type:");
      writer.WriteBreak();
      JobTypeLabel.RenderControl(writer);
      writer.WriteBreak();
      writer.Write("Current:");
      writer.WriteBreak();
      IsCurrentCheckBox.RenderControl(writer);
    }
  }

  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class TextDisplayWebPart : WebPart
  {
    private String _contentText = null;
    TextBox input;
    Label DisplayContent;
    Literal lineBreak;

    [Personalizable(), WebBrowsable]
    public String ContentText
    {
      get { return _contentText; }
      set { _contentText = value; }
    }

    protected override void CreateChildControls()
    {
      Controls.Clear();
      DisplayContent = new Label();
      DisplayContent.BackColor = Color.LightBlue;
      DisplayContent.Text = this.ContentText;
      this.Controls.Add(DisplayContent);

      lineBreak = new Literal();
      lineBreak.Text = @"<br />";
      Controls.Add(lineBreak);

      input = new TextBox();
      this.Controls.Add(input);
      Button update = new Button();
      update.Text = "Set Label Content";
      update.Click += new EventHandler(this.submit_Click);
      this.Controls.Add(update);
    }

    private void submit_Click(object sender, EventArgs e)
    {
      // Update the label string.
      if (!String.IsNullOrEmpty(input.Text))
      {
        _contentText = Context.Server.HtmlEncode(input.Text) + @"<br />";
        input.Text = String.Empty;
        DisplayContent.Text = this.ContentText;
      }
    }
  }
}
Imports System.Collections
Imports System.ComponentModel
Imports System.Drawing
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

Namespace Samples.AspNet.VB.Controls

  <AspNetHostingPermission(SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  Public Class UserInfoWebPart
    Inherits WebPart
    Private server As HttpServerUtility = HttpContext.Current.Server
    Private _userNickName As String = "Add a nickname."
    Private _userPetName As String = "Add a pet name."
    Private _userSpecialDate As DateTime = DateTime.Now
    Private _userIsCurrent As [Boolean] = True
    Private _userJobType As JobTypeName = JobTypeName.Unselected

    Public Enum JobTypeName
      Unselected = 0
      Support = 1
      Service = 2
      Professional = 3
      Technical = 4
      Manager = 5
      Executive = 6
    End Enum

    Private NickNameLabel As Label
    Private PetNickNameLabel As Label
    Private SpecialDateLabel As Label
    Private IsCurrentCheckBox As CheckBox
    Private JobTypeLabel As Label

    ' Add the Personalizable and WebBrowsable attributes to the  
    ' public properties, so that users can save property values  
    ' and edit them with a PropertyGridEditorPart control.

    <Personalizable(), WebBrowsable(), WebDisplayName("Nickname")> _
    Public Property NickName() As String
      Get
        Dim o As Object = ViewState("NickName")
        If Not (o Is Nothing) Then
          Return CStr(o)
        Else
          Return _userNickName
        End If
      End Get
      Set(ByVal value As String)
        _userNickName = server.HtmlEncode(value)
      End Set
    End Property

    <Personalizable(), WebBrowsable(), WebDisplayName("Pet Name")> _
    Public Property PetName() As String
      Get
        Dim o As Object = ViewState("PetName")
        If Not (o Is Nothing) Then
          Return CStr(o)
        Else
          Return _userPetName
        End If
      End Get
      Set(ByVal value As String)
        _userPetName = server.HtmlEncode(value)
      End Set
    End Property

    <Personalizable(), WebBrowsable(), WebDisplayName("Special Day")> _
    Public Property SpecialDay() As DateTime
      Get
        Dim o As Object = ViewState("SpecialDay")
        If Not (o Is Nothing) Then
          Return CType(o, DateTime)
        Else
          Return _userSpecialDate
        End If
      End Get

      Set(ByVal value As DateTime)
        _userSpecialDate = value
      End Set
    End Property

    <Personalizable(), WebBrowsable(), WebDisplayName("Job Type")> _
    Public Property UserJobType() As JobTypeName
      Get
        Dim o As Object = ViewState("UserJobType")
        If Not (o Is Nothing) Then
          Return CType(o, JobTypeName)
        Else
          Return _userJobType
        End If
      End Get
      Set(ByVal value As JobTypeName)
        _userJobType = CType(value, JobTypeName)
      End Set
    End Property

    <Personalizable(), WebBrowsable(), WebDisplayName("Is Current")> _
    Public Property IsCurrent() As [Boolean]
      Get
        Dim o As Object = ViewState("IsCurrent")
        If Not (o Is Nothing) Then
          Return CType(o, [Boolean])
        Else
          Return _userIsCurrent
        End If
      End Get
      Set(ByVal value As [Boolean])
        _userIsCurrent = value
      End Set
    End Property

    Protected Overrides Sub CreateChildControls()
      Controls.Clear()

      NickNameLabel = New Label()
      NickNameLabel.Text = Me.NickName
      SetControlAttributes(NickNameLabel)

      PetNickNameLabel = New Label()
      PetNickNameLabel.Text = Me.PetName
      SetControlAttributes(PetNickNameLabel)

      SpecialDateLabel = New Label()
      SpecialDateLabel.Text = Me.SpecialDay.ToShortDateString()
      SetControlAttributes(SpecialDateLabel)

      IsCurrentCheckBox = New CheckBox()
      IsCurrentCheckBox.Checked = Me.IsCurrent
      SetControlAttributes(IsCurrentCheckBox)

      JobTypeLabel = New Label()
      JobTypeLabel.Text = Me.UserJobType.ToString()
      SetControlAttributes(JobTypeLabel)

      ChildControlsCreated = True

    End Sub

    Private Sub SetControlAttributes(ByVal ctl As WebControl)
      ctl.BackColor = Color.White
      ctl.BorderWidth = 1
      ctl.Width = 200
      Me.Controls.Add(ctl)
    End Sub

    Protected Overrides Sub RenderContents(ByVal writer As HtmlTextWriter)
      writer.Write("Nickname:")
      writer.WriteBreak()
      NickNameLabel.RenderControl(writer)
      writer.WriteBreak()
      writer.Write("Pet Name:")
      writer.WriteBreak()
      PetNickNameLabel.RenderControl(writer)
      writer.WriteBreak()
      writer.Write("Special Date:")
      writer.WriteBreak()
      SpecialDateLabel.RenderControl(writer)
      writer.WriteBreak()
      writer.Write("Job Type:")
      writer.WriteBreak()
      JobTypeLabel.RenderControl(writer)
      writer.WriteBreak()
      writer.Write("Current:")
      writer.WriteBreak()
      IsCurrentCheckBox.RenderControl(writer)

    End Sub

  End Class


  <AspNetHostingPermission(SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  Public Class TextDisplayWebPart
    Inherits WebPart
    Private _contentText As String = Nothing
    Private _fontStyle As String = Nothing
    Private input As TextBox
    Private DisplayContent As Label
    Private lineBreak As Literal

    <Personalizable(), WebBrowsable()> _
    Public Property ContentText() As String
      Get
        Return _contentText
      End Get
      Set(ByVal value As String)
        _contentText = value
      End Set
    End Property

    Protected Overrides Sub CreateChildControls()
      Controls.Clear()
      DisplayContent = New Label()
      DisplayContent.BackColor = Color.LightBlue
      DisplayContent.Text = Me.ContentText
      Me.Controls.Add(DisplayContent)

      lineBreak = New Literal()
      lineBreak.Text = "<br />"
      Controls.Add(lineBreak)

      input = New TextBox()
      Me.Controls.Add(input)
      Dim update As New Button()
      update.Text = "Set Label Content"
      AddHandler update.Click, AddressOf Me.submit_Click
      Me.Controls.Add(update)

    End Sub

    Private Sub submit_Click(ByVal sender As Object, _
                             ByVal e As EventArgs)
      ' Update the label string.
      If String.IsNullOrEmpty(input.Text) = False Then
        _contentText = Context.Server.HtmlEncode(input.Text) + "<br />"
        input.Text = String.Empty
        DisplayContent.Text = Me.ContentText
      End If

    End Sub

  End Class

End Namespace

Ahora ejecute el ejemplo de código. Cargue la página web en un explorador. El primer paso es editar el UserInfoWebPart control. Use el control de lista desplegable Modo de presentación y seleccione Editar para cambiar la página al modo de edición. Haga clic en el menú verbos del UserInfoWebPart control (la flecha hacia abajo de la barra de título) y, a continuación, haga clic en Editar. Cuando aparece la interfaz de usuario de edición, aparecen varios controles de edición debajo del UserInfoWebPart control que puede usar para editar sus valores de campo. Edite algunos campos, haga clic en Aceptar y, a continuación, use la lista desplegable Modo de presentación para devolver la página al modo de exploración.

El segundo paso es exportar un . Archivo de descripción del elemento web para el UserInfoWebPart control. Haga clic en el menú verbos del control personalizado (representado por la flecha hacia abajo de la barra de título) y haga clic en Exportar. Siga las instrucciones para guardar un . Archivo de descripción del elemento web para el control. Ahora cierre la página web y edite el origen de la página en un editor. Elimine el <aspSample:userinfowebpart> elemento de declaración de control y guarde y cierre el archivo. (Está realizando este paso para simular un usuario que aún no tiene el UserInfoWebPart control, por lo que puede importar el control a la página).

Vuelva a cargar la página web en un explorador. El UserInfoWebPart control no debería aparecer porque lo quitó. Use el control de lista desplegable Modo de presentación y seleccione Catálogo para cambiar la página al modo de catálogo. En el ImportCatalogPart control, haga clic en el botón Examinar y vaya a . Archivo de elemento web que ha creado y, a continuación, haga clic en el botón Cargar . Debe aparecer una referencia al control con una casilla junto a él. Active la casilla y haga clic en Agregar para agregar el control a la página.

Mientras está en esta vista de la página, haga clic en el botón Actualizar ImportCatalogPart situado cerca de la parte inferior de la página para ver el efecto de actualizar mediante programación un número de valores de propiedad en el ImportCatalogPart control. Después de hacer clic en el botón, observe cómo se cambian las distintas propiedades en la interfaz de usuario.

Por último, haga clic en Cerrar para salir del modo de catálogo y devuelva la página al modo de exploración. El UserInfoWebPart control debería aparecer ahora en la página, que contiene los valores que tenía al exportarlo anteriormente.

Comentarios

El ImportCatalogPart control permite a los usuarios importar un archivo de descripción que describe la configuración de un WebPart control o control de servidor que un usuario quiere agregar a una WebPartZoneBase zona.

Una vez que un usuario importa un archivo de descripción, el WebPart control al que se hace referencia en el archivo aparece dentro del ImportCatalogPart control y un usuario puede agregar el control a la página.

El archivo de descripción no es el mismo que el propio control. Es un archivo XML que termina con . La extensión WebPart y contiene pares nombre-valor--principalmente valores de propiedad- que describen el estado del control. El archivo de descripción se crea según un formato XML especificado, tal y como se describe en el tema Archivos de descripción del control de elementos web.

En cuanto al control al que hace referencia el archivo de descripción, se puede compilar en un ensamblado o puede ser un control de usuario definido en un archivo .ascx. En cualquier caso, el control al que se hace referencia en un archivo de descripción importado debe existir en el servidor web que hospeda la página que intenta importar el control. El archivo de descripción hace referencia al nombre del control y al ensamblado (o archivo) que contiene el control, y el archivo de descripción contiene valores de propiedad, apariencia y comportamiento del control.

El ImportCatalogPart control permite a los usuarios compartir la configuración en los controles. Un control complejo puede tener muchas propiedades y configuraciones. Por ejemplo, en un sitio de intranet típico dentro de una empresa grande, un control personalizado WebPart puede contener una serie de propiedades que contienen valores específicos del entorno de los usuarios, como sus conexiones de base de datos, información de departamento, etc. El control también puede contener una serie de propiedades que afectan a su apariencia. Un usuario podría personalizar el control en un sitio determinado y conseguir que funcione correctamente, exportar un archivo de descripción para el control y, a continuación, compartir el archivo de descripción con otros usuarios, que podrían importar el archivo para agregar el control totalmente configurado a otros sitios de intranet a los que se les permite personalizar. Siempre que el ensamblado compilado o el archivo de control de usuario que contiene el control exista en el servidor web que hospeda su sitio, los usuarios pueden agregar el control a otros sitios web.

El mecanismo por el que los usuarios importan un archivo de descripción (y, por tanto, su control de servidor asociado) en una página web es el ImportCatalogPart control , que un desarrollador de páginas debe agregar a una página web. Cuando un usuario cambia la página al modo de presentación del catálogo, aparece el ImportCatalogPart control y el usuario puede usar este control para ir a . Archivo de descripción del elemento web correspondiente al control de servidor que desea importar. Siguiendo la interfaz de usuario y las instrucciones proporcionadas por el ImportCatalogPart control , un usuario puede agregar el control de servidor deseado a la página web, con su apariencia y propiedades totalmente configuradas como se especifica en el archivo de descripción importado.

Antes de importar el archivo de descripción de un WebPart control, un usuario primero debe crear (exportar) el archivo en función de un control existente WebPart . Se puede exportar un archivo de descripción para un control si se cumplen las condiciones siguientes:

  • El control tiene propiedades marcadas con el Personalizable atributo .

  • El archivo Web.config tiene el valor de enableExport atributo establecido true en en el <webParts> elemento .

  • Un desarrollador establece el valor de la ExportMode propiedad en el control en un valor distinto del valor predeterminado de None, que prohíbe la exportación. Si el valor de la ExportMode propiedad se establece NonSensitiveDataen , cualquier propiedad que contenga un IsSensitive parámetro con un Personalizable atributo no se exporta cuando un usuario exporta un archivo de descripción. Esto permite a los desarrolladores de control evitar que se exporten datos confidenciales, como cadenas de conexión, en determinadas situaciones.

Un usuario puede exportar un control que se ha habilitado para exportar haciendo clic en el verbo de exportación que aparece en el menú verbos del control y siguiendo las instrucciones para guardar un . Archivo de descripción del elemento web para el control. A continuación, otros usuarios pueden importar este archivo para configurar sus propias instancias del control.

La ImportCatalogPart clase contiene varias propiedades. La BrowseHelpText propiedad contiene texto con instrucciones para los usuarios al buscar el archivo de descripción. La ImportedPartLabelText propiedad contiene texto que actúa como una etiqueta para el control importado tal como aparece dentro del ImportCatalogPart control. PartImportErrorLabelText contiene texto que se muestra si se produce un error cuando se importa una descripción del control. La Title propiedad invalida la propiedad base para asignar un título predeterminado para un ImportCatalogPart control si el desarrollador no asigna un título. La UploadButtonText propiedad contiene el texto del botón en el que el usuario hace clic para cargar el archivo de descripción y la UploadHelpText propiedad contiene las instrucciones para el proceso de carga.

La ImportCatalogPart clase también contiene varios métodos únicos. El GetAvailableWebPartDescriptions método recupera un WebPartDescription objeto para cada WebPart control del catálogo, lo que permite a un ImportCatalogPart control mostrar información sobre cada control de servidor sin tener que crear una instancia de él. El GetWebPart método obtiene una instancia de un control determinado WebPart , en función de la descripción que se pasa al método .

Existen algunos riesgos inherentes asociados al uso del ImportCatalogPart control . Un ejemplo es la posibilidad de importar datos malintencionados en la aplicación web a través de los archivos de descripción usados para la importación. Si alguien ha colocado código de script malintencionado como valor de una propiedad de cadena en el archivo de descripción, ese script podría ejecutarse potencialmente cuando un usuario importa el archivo de descripción y agrega el control de servidor al que se hace referencia a una página web. Para minimizar el riesgo de importar archivos de descripción con datos malintencionados, los controles de servidor que tienen propiedades con tipo cadena siempre deben codificar los datos de propiedad. Otro riesgo implica la importación de tipos a través de archivos de descripción (vea Archivos de descripción de control de elementos web). Un usuario malintencionado podría enviar solicitudes para cargar muchos ensamblados en AppDomain, lo que da lugar a que se consuma una cantidad excesiva de memoria.

Para evitar los riesgos asociados a la importación, puede deshabilitar la característica por completo sin usar la característica de importación ni el ImportCatalogPart control . O bien, puede limitar qué usuarios tienen acceso al control. Puede hacerlo mediante programación con la administración de roles (consulte Administración de la autorización mediante roles). Por ejemplo, cuando se carga la página, puede probar para ver si un usuario tiene un rol determinado, como el rol de administrador. Si el usuario está en el rol, puede agregar mediante programación el ImportCatalogPart control a la página de ese usuario. También puede usar un enfoque declarativo para limitar el conjunto de usuarios que pueden usar el ImportCatalogPart control . Dentro de la página web que contiene un catálogo, puede colocar dos CatalogZone controles: uno para los usuarios que pueden importar y otro para aquellos que no pueden. La zona para los usuarios que pueden importar contendrá el ImportCatalogPart control . La propia zona podría colocarse dentro de un LoginView control, lo que le permitiría limitar el uso del control en la zona solo a los usuarios o roles autenticados que especifique.

Constructores

ImportCatalogPart()

Inicializa una nueva instancia de la clase ImportCatalogPart.

Propiedades

AccessKey

Obtiene o establece la clave de acceso que permite navegar rápidamente al control de servidor web.

(Heredado de WebControl)
Adapter

Obtiene el adaptador específico del explorador para el control.

(Heredado de Control)
AppRelativeTemplateSourceDirectory

Obtiene o establece el directorio virtual relativo a la aplicación del objeto Page o el objeto UserControl que contiene este control.

(Heredado de Control)
Attributes

Obtiene la colección de atributos arbitrarios (sólo para su representación) que no corresponden a propiedades del control.

(Heredado de WebControl)
BackColor

Obtiene o establece el color de fondo del control de servidor web.

(Heredado de WebControl)
BackImageUrl

Obtiene o establece la dirección URL de la imagen de fondo para el control del panel.

(Heredado de Panel)
BindingContainer

Obtiene el control que contiene el enlace de datos de este control.

(Heredado de Control)
BorderColor

Obtiene o establece el color de borde del control Web.

(Heredado de WebControl)
BorderStyle

Obtiene o establece el estilo del borde del control de servidor web.

(Heredado de WebControl)
BorderWidth

Obtiene o establece el ancho del borde del control de servidor web.

(Heredado de WebControl)
BrowseHelpText

Obtiene o establece un mensaje de texto que indica a los usuarios que vayan a la ubicación de un archivo de descripción.

ChildControlsCreated

Obtiene un valor que indica si se han creado controles secundarios del control de servidor.

(Heredado de Control)
ChromeState

Obtiene o establece si un control de elementos está en un estado minimizado o normal.

(Heredado de Part)
ChromeType

Obtiene o establece el tipo de borde que encuadra un control de elementos Web.

(Heredado de Part)
ClientID

Obtiene el id. de control para marcado HTML que se genera por ASP.NET.

(Heredado de Control)
ClientIDMode

Obtiene o establece el algoritmo que se utiliza para generar el valor de la propiedad ClientID.

(Heredado de Control)
ClientIDSeparator

Obtiene un valor de carácter que representa el carácter separado utilizado en la propiedad ClientID.

(Heredado de Control)
Context

Obtiene el objeto HttpContext asociado al control de servidor para la solicitud Web actual.

(Heredado de Control)
Controls

Obtiene un objeto ControlCollection que contiene los controles secundarios para un control de servidor especificado en la jerarquía de la interfaz de usuario.

(Heredado de Part)
ControlStyle

Obtiene el estilo del control de servidor web. Esta propiedad la usan principalmente los programadores de controles.

(Heredado de WebControl)
ControlStyleCreated

Obtiene un valor que indica si se ha creado un objeto Style para la propiedad ControlStyle. Esta propiedad la usan principalmente los programadores de controles.

(Heredado de WebControl)
CssClass

Obtiene o establece la clase hoja de estilos en cascada (CSS) presentada por el control de servidor web en el cliente.

(Heredado de WebControl)
DataItemContainer

Obtiene una referencia al contenedor de nomenclatura si este implementa IDataItemContainer.

(Heredado de Control)
DataKeysContainer

Obtiene una referencia al contenedor de nomenclatura si este implementa IDataKeysControl.

(Heredado de Control)
DefaultButton

Obtiene o establece qué botón de la interfaz de usuario (IU) se trata como el botón predeterminado que recibe el foco cuando se representa el formulario que contiene el botón. Esta propiedad no está diseñada para ser llamada desde código del desarrollador de páginas.

Description

Obtiene o establece una frase breve que resume lo que hace el control de elementos, para su uso en información sobre herramientas y en catálogos de controles de elementos.

(Heredado de Part)
DesignMode

Obtiene un valor que indica si se está utilizando un control en una superficie de diseño.

(Heredado de Control)
Direction

Obtiene o establece la dirección en la que se muestran los controles que incluyen texto en un control Panel.

(Heredado de Panel)
DisplayTitle

Obtiene una cadena que contiene el título real actual de un control CatalogPart.

(Heredado de CatalogPart)
Enabled

Obtiene o establece un valor que indica si el control de servidor web está habilitado.

(Heredado de WebControl)
EnableTheming

Obtiene o establece un valor que indica si los temas se aplican a este control.

(Heredado de WebControl)
EnableViewState

Obtiene o establece un valor que indica si el control de servidor conserva su estado de vista, así como el estado de vista de los controles secundarios que contiene, al cliente solicitante.

(Heredado de Control)
Events

Obtiene una lista de delegados de controladores de eventos del control. Esta propiedad es de sólo lectura.

(Heredado de Control)
Font

Obtiene las propiedades de fuente asociadas al control de servidor web.

(Heredado de WebControl)
ForeColor

Obtiene o establece el color de primer plano (normalmente el color del texto) del control de servidor web.

(Heredado de WebControl)
GroupingText

Obtiene o establece el título del grupo de controles contenido en el control de panel.

(Heredado de Panel)
HasAttributes

Obtiene un valor que indica si el control tiene establecido algún atributo.

(Heredado de WebControl)
HasChildViewState

Obtiene un valor que indica si los controles secundarios del control de servidor actual tienen guardada alguna configuración del estado de vista.

(Heredado de Control)
Height

Obtiene o establece el alto del control de servidor Web.

(Heredado de WebControl)
HorizontalAlign

Obtiene o establece la alineación horizontal del contenido del panel.

(Heredado de Panel)
ID

Obtiene o establece el identificador de programación asignado al control de servidor.

(Heredado de Control)
IdSeparator

Obtiene el carácter utilizado para separar los identificadores de control.

(Heredado de Control)
ImportedPartLabelText

Obtiene o establece el texto que se muestra después de que un usuario importe un archivo de descripción para representar o describir el control importado dentro del catálogo de controles importados.

IsChildControlStateCleared

Obtiene un valor que indica si los controles que se encuentran en este control tienen estado de control.

(Heredado de Control)
IsEnabled

Obtiene un valor que indica si está habilitado el control.

(Heredado de WebControl)
IsTrackingViewState

Obtiene un valor que indica si el control de servidor está guardando los cambios realizados en su estado de vista.

(Heredado de Control)
IsViewStateEnabled

Obtiene un valor que indica si el estado de vista está habilitado para este control.

(Heredado de Control)
LoadViewStateByID

Obtiene un valor que indica si el control participa en la carga de su estado de vista mediante ID en lugar de índice.

(Heredado de Control)
NamingContainer

Obtiene una referencia al contenedor de nomenclatura del control de servidor, que crea un espacio de nombres único para diferenciar los distintos controles de servidor que tienen el mismo valor para la propiedad ID.

(Heredado de Control)
Page

Obtiene una referencia a la instancia Page que contiene el control de servidor.

(Heredado de Control)
Parent

Obtiene una referencia al control principal del control de servidor en la jerarquía de controles de página.

(Heredado de Control)
PartImportErrorLabelText

Obtiene o establece un mensaje de error que se muestra si se produce un error durante el proceso de importación.

RenderingCompatibility

Obtiene o establece un valor que especifica la versión de ASP.NET compatible con los elementos HTML representados.

(Heredado de Control)
ScrollBars

Obtiene o establece la visibilidad y la posición de las barras de desplazamiento de un control Panel.

(Heredado de Panel)
Site

Obtiene información sobre el contenedor en que se encuentra el control actual cuando se representa en una superficie de diseño.

(Heredado de Control)
SkinID

Obtiene o establece la máscara que se aplica al control.

(Heredado de WebControl)
Style

Obtiene una colección de atributos de texto que se representan como atributo de estilo en la etiqueta externa del control de servidor web.

(Heredado de WebControl)
SupportsDisabledAttribute

Obtiene un valor que indica si el control debe establecer en "disabled" el atributo disabled del elemento HTML representado cuando el valor de la propiedad IsEnabled del control es false.

(Heredado de Panel)
TabIndex

Obtiene o establece el índice de tabulación del control de servidor web.

(Heredado de WebControl)
TagKey

Obtiene el valor HtmlTextWriterTag correspondiente al control de servidor web. Esta propiedad la usan principalmente los programadores de controles.

(Heredado de WebControl)
TagName

Obtiene el nombre de la etiqueta del control. Esta propiedad la usan principalmente los programadores de controles.

(Heredado de WebControl)
TemplateControl

Obtiene o establece una referencia a la plantilla que contiene este control.

(Heredado de Control)
TemplateSourceDirectory

Obtiene el directorio virtual de Page o UserControl que contiene el control de servidor actual.

(Heredado de Control)
Title

Obtiene o establece el título que aparece en la barra de título de un control ImportCatalogPart.

ToolTip

Obtiene o establece el texto que se muestra cuando el puntero del mouse se desplaza sobre el control de servidor web.

(Heredado de WebControl)
UniqueID

Obtiene el identificador único calificado jerárquicamente para el control de servidor.

(Heredado de Control)
UploadButtonText

Obtiene o establece el texto del control Button que inicia la carga de un archivo de descripción.

UploadHelpText

Obtiene o establece el texto del mensaje que indica al usuario cómo cargar un archivo de descripción.

ValidateRequestMode

Obtiene o establece un valor que indica si el control comprueba la entrada del cliente desde el explorador para valores potencialmente peligrosos.

(Heredado de Control)
ViewState

Obtiene un diccionario con información de estado que le permite guardar y restaurar el estado de vista de un control de servidor en las distintas solicitudes de la misma página.

(Heredado de Control)
ViewStateIgnoresCase

Obtiene un valor que indica si el objeto StateBag no distingue mayúsculas de minúsculas.

(Heredado de Control)
ViewStateMode

Obtiene o establece el modo del estado de vista de este control.

(Heredado de Control)
Visible

Obtiene o establece un valor que indica si un control de servidor se representa como interfaz de usuario en la página.

(Heredado de Control)
WebPartManager

Obtiene una referencia a la instancia actual de la clase WebPartManager.

(Heredado de CatalogPart)
Width

Obtiene o establece el ancho del control de servidor web.

(Heredado de WebControl)
Wrap

Obtiene o establece un valor que indica si el contenido se ajusta dentro del panel.

(Heredado de Panel)
Zone

Obtiene una referencia a la zona CatalogZoneBase que contiene un control CatalogPart.

(Heredado de CatalogPart)

Métodos

AddAttributesToRender(HtmlTextWriter)

Agrega información sobre la imagen de fondo, alineación, ajuste y dirección a la lista de atributos que se van a presentar.

(Heredado de Panel)
AddedControl(Control, Int32)

Se llama después de agregar un control secundario a la colección Controls del objeto Control.

(Heredado de Control)
AddParsedSubObject(Object)

Notifica al control de servidor que se analizó un elemento, ya sea XML o HTML, y agrega el elemento al objeto ControlCollection del control del servidor.

(Heredado de Control)
ApplyStyle(Style)

Copia en el control Web todos los elementos no vacíos del estilo especificado, sobrescribiendo los elementos de estilo existentes del mismo. Este método lo usan principalmente los programadores de controles.

(Heredado de WebControl)
ApplyStyleSheetSkin(Page)

Aplica al control las propiedades de estilo definidas en la hoja de estilos de la página.

(Heredado de Control)
BeginRenderTracing(TextWriter, Object)

Comienza el seguimiento en tiempo de diseño de los datos de representación.

(Heredado de Control)
BuildProfileTree(String, Boolean)

Recopila información sobre el control de servidor y la pasa a la propiedad Trace para que se muestre cuando está habilitada la traza de la página.

(Heredado de Control)
ClearCachedClientID()

Establece en null el valor de ClientID almacenado en caché.

(Heredado de Control)
ClearChildControlState()

Elimina la información sobre el estado de control de los controles secundarios del control de servidor.

(Heredado de Control)
ClearChildState()

Elimina la información sobre el estado de vista y el estado de control de los controles secundarios del control de servidor.

(Heredado de Control)
ClearChildViewState()

Elimina la información sobre el estado de vista de todos los controles secundarios del control de servidor.

(Heredado de Control)
ClearEffectiveClientIDMode()

Establece la propiedad ClientIDMode de la instancia del control actual y de cualquier control secundario en Inherit.

(Heredado de Control)
CopyBaseAttributes(WebControl)

Copia las propiedades no encapsuladas por el objeto Style del control de servidor web especificado al control de servidor web desde el que se efectúa la llamada al método. Este método lo usan principalmente los desarrolladores de controles.

(Heredado de WebControl)
CreateChildControls()

Lo llama el marco de páginas ASP.NET para indicar a los controles de servidor que usan la implementación basada en composición que creen los controles secundarios que contengan como forma de preparar la devolución o representación de los datos.

(Heredado de Control)
CreateControlCollection()

Crea un nuevo objeto ControlCollection que contendrá los controles secundarios (de literal y servidor) del control de servidor.

(Heredado de Control)
CreateControlStyle()

Crea un objeto de estilo que usa el control Panel de forma interna para implementar todas las propiedades relacionadas con el estilo.

(Heredado de Panel)
DataBind()

Enlaza un origen de datos al control de servidor invocado y a todos sus controles secundarios.

(Heredado de Part)
DataBind(Boolean)

Enlaza un origen de datos al control de servidor que se ha invocado y a todos sus controles secundarios con una opción para generar el evento DataBinding.

(Heredado de Control)
DataBindChildren()

Enlaza un origen de datos a los controles secundarios del control de servidor.

(Heredado de Control)
Dispose()

Habilita un control de servidor para que realice la limpieza final antes de que se libere de la memoria.

(Heredado de Control)
EndRenderTracing(TextWriter, Object)

Finaliza el seguimiento en tiempo de diseño de los datos de representación.

(Heredado de Control)
EnsureChildControls()

Determina si el control de servidor contiene controles secundarios. Si no tiene controles secundarios, los crea.

(Heredado de Control)
EnsureID()

Crea un identificador para controles que no tiene un identificador asignado.

(Heredado de Control)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
FindControl(String)

Busca un control de servidor con el parámetro id especificado en el contenedor de nomenclatura actual.

(Heredado de Control)
FindControl(String, Int32)

Busca el contenedor de nomenclatura actual para un control de servidor con el id especificado y un entero, que se especifica en el parámetro pathOffset, que ayuda a realizar la búsqueda. Esta versión del método FindControl no se debe reemplazar.

(Heredado de Control)
Focus()

Establece el foco de entrada en un control.

(Heredado de Control)
GetAvailableWebPartDescriptions()

Devuelve una colección de descripciones de los controles WebPart disponibles en un catálogo.

GetDesignModeState()

Recupera el estado actual de una zona primaria de un control CatalogPart.

(Heredado de CatalogPart)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetRouteUrl(Object)

Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta.

(Heredado de Control)
GetRouteUrl(RouteValueDictionary)

Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta.

(Heredado de Control)
GetRouteUrl(String, Object)

Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta y un nombre de ruta.

(Heredado de Control)
GetRouteUrl(String, RouteValueDictionary)

Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta y un nombre de ruta.

(Heredado de Control)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetUniqueIDRelativeTo(Control)

Devuelve la parte correspondiente al prefijo de la propiedad UniqueID del control especificado.

(Heredado de Control)
GetWebPart(WebPartDescription)

Devuelve una referencia a un control WebPart basándose en los valores de la descripción pasada al método.

HasControls()

Determina si el control de servidor contiene controles secundarios.

(Heredado de Control)
HasEvents()

Devuelve un valor que indica si se registran eventos para el control o los controles secundarios.

(Heredado de Control)
IsLiteralContent()

Determina si el control de servidor alberga únicamente contenido literal.

(Heredado de Control)
LoadControlState(Object)

Restaura información de estado de control de una solicitud de página anterior guardada por el método SaveControlState().

(Heredado de Control)
LoadViewState(Object)

Restaura la información del estado de la vista a partir de una solicitud anterior que se guardó con el método SaveViewState().

(Heredado de WebControl)
MapPathSecure(String)

Recupera la ruta de acceso física a la que se asigna una ruta de acceso virtual, absoluta o relativa.

(Heredado de Control)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MergeStyle(Style)

Copia en el control Web todos los elementos no vacíos del estilo especificado, pero no sobrescribe los elementos de estilo existentes en el mismo. Este método lo usan principalmente los desarrolladores de controles.

(Heredado de WebControl)
OnBubbleEvent(Object, EventArgs)

Determina si el evento del control de servidor se pasa a la jerarquía de control de servidor de la interfaz de usuario (UI) de la página.

(Heredado de Control)
OnDataBinding(EventArgs)

Genera el evento DataBinding.

(Heredado de Control)
OnInit(EventArgs)

Genera el evento Init.

(Heredado de Control)
OnLoad(EventArgs)

Genera el evento Load.

(Heredado de Control)
OnPreRender(EventArgs)

Genera el evento PreRender.

(Heredado de CatalogPart)
OnUnload(EventArgs)

Genera el evento Unload.

(Heredado de Control)
OpenFile(String)

Obtiene un objeto Stream utilizado para leer un archivo.

(Heredado de Control)
RaiseBubbleEvent(Object, EventArgs)

Asigna los orígenes del evento y su información al control principal del control.

(Heredado de Control)
RemovedControl(Control)

Se llama después de quitar un control secundario de la colección Controls del objeto Control.

(Heredado de Control)
Render(HtmlTextWriter)

Representa el control en el sistema de escritura HTML especificado.

(Heredado de WebControl)
RenderBeginTag(HtmlTextWriter)

Presenta la etiqueta HTML de apertura del control Panel en el sistema de escritura especificado.

(Heredado de Panel)
RenderChildren(HtmlTextWriter)

Envía el contenido de los elementos secundarios de un control de servidor a un objeto HtmlTextWriter especificado, que escribe el contenido que se va a representar en el cliente.

(Heredado de Control)
RenderContents(HtmlTextWriter)

Representa el contenido del control en el sistema de escritura especificado. Este método lo usan principalmente los desarrolladores de controles.

(Heredado de WebControl)
RenderControl(HtmlTextWriter)

Envía el contenido de control del servidor a un objeto HtmlTextWriter proporcionado y almacena información de seguimiento sobre el control si está habilitado el seguimiento.

(Heredado de Control)
RenderControl(HtmlTextWriter, ControlAdapter)

Coloca el contenido de un control de servidor en un objeto HtmlTextWriter proporcionado, utilizando un objeto ControlAdapter proporcionado.

(Heredado de Control)
RenderEndTag(HtmlTextWriter)

Presenta la etiqueta HTML de cierre del control Panel en el escritor especificado.

(Heredado de Panel)
ResolveAdapter()

Obtiene el adaptador de controles que se encarga de representar el control especificado.

(Heredado de Control)
ResolveClientUrl(String)

Obtiene una dirección URL que el explorador puede utilizar.

(Heredado de Control)
ResolveUrl(String)

Convierte una dirección URL en una que el cliente solicitante pueda utilizar.

(Heredado de Control)
SaveControlState()

Guarda los cambios de estado del control de servidor que se produjeron desde la hora en que la página volvió a publicarse en el servidor.

(Heredado de Control)
SaveViewState()

Guarda cualquier estado modificado después de invocar el método TrackViewState().

(Heredado de WebControl)
SetDesignModeState(IDictionary)

Establece los datos en tiempo de diseño para un control.

(Heredado de CatalogPart)
SetRenderMethodDelegate(RenderMethod)

Asigna un delegado de controlador de eventos para representar el control de servidor y su contenido en el control principal.

(Heredado de Control)
SetTraceData(Object, Object)

Establece datos de seguimiento para el seguimiento en tiempo de diseño de los datos de representación, para lo que usa la clave y el valor de los datos de seguimiento.

(Heredado de Control)
SetTraceData(Object, Object, Object)

Establece datos de seguimiento para el seguimiento en tiempo de diseño de los datos de representación, para lo que usa el objeto del que se ha realizado seguimiento, así como la clave y el valor de los datos de seguimiento.

(Heredado de Control)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
TrackViewState()

Hace que el control realice un seguimiento de los cambios en su estado de vista para que puedan almacenarse en la propiedad ViewState del objeto.

(Heredado de WebControl)

Eventos

DataBinding

Se produce cuando el control de servidor se enlaza a un origen de datos.

(Heredado de Control)
Disposed

Se produce cuando un control de servidor se libera de la memoria, lo que constituye la última fase del período de duración de un control de servidor cuando se solicita una página ASP.NET.

(Heredado de Control)
Init

Tiene lugar al inicializar el control de servidor, que es el primer paso en su ciclo de vida.

(Heredado de Control)
Load

Se produce cuando el control de servidor se carga en el objeto Page.

(Heredado de Control)
PreRender

Se produce una vez que se carga el objeto Control, pero antes de su representación.

(Heredado de Control)
Unload

Se produce cuando el control de servidor se descarga de la memoria.

(Heredado de Control)

Implementaciones de interfaz explícitas

IAttributeAccessor.GetAttribute(String)

Obtiene un atributo del control Web con el nombre especificado.

(Heredado de WebControl)
IAttributeAccessor.SetAttribute(String, String)

Establece un atributo del control Web con el nombre y el valor especificados.

(Heredado de WebControl)
ICompositeControlDesignerAccessor.RecreateChildControls()

Le permite al programador de un diseñador para un control de elementos compuesto volver a crear los controles secundarios del control en la superficie de diseño.

(Heredado de Part)
IControlBuilderAccessor.ControlBuilder

Para obtener una descripción de este miembro, vea ControlBuilder.

(Heredado de Control)
IControlDesignerAccessor.GetDesignModeState()

Para obtener una descripción de este miembro, vea GetDesignModeState().

(Heredado de Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Para obtener una descripción de este miembro, vea SetDesignModeState(IDictionary).

(Heredado de Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Para obtener una descripción de este miembro, vea SetOwnerControl(Control).

(Heredado de Control)
IControlDesignerAccessor.UserData

Para obtener una descripción de este miembro, vea UserData.

(Heredado de Control)
IDataBindingsAccessor.DataBindings

Para obtener una descripción de este miembro, vea DataBindings.

(Heredado de Control)
IDataBindingsAccessor.HasDataBindings

Para obtener una descripción de este miembro, vea HasDataBindings.

(Heredado de Control)
IExpressionsAccessor.Expressions

Para obtener una descripción de este miembro, vea Expressions.

(Heredado de Control)
IExpressionsAccessor.HasExpressions

Para obtener una descripción de este miembro, vea HasExpressions.

(Heredado de Control)
IParserAccessor.AddParsedSubObject(Object)

Para obtener una descripción de este miembro, vea AddParsedSubObject(Object).

(Heredado de Control)

Métodos de extensión

FindDataSourceControl(Control)

Devuelve el origen de datos que está asociado al control de datos del control especificado.

FindFieldTemplate(Control, String)

Devuelve la plantilla de campo para la columna especificada en el contenedor de nomenclatura del control especificado.

FindMetaTable(Control)

Devuelve el objeto de metatabla para el control de datos contenedor.

GetDefaultValues(INamingContainer)

Obtiene la colección de los valores predeterminados para el control de datos especificado.

GetMetaTable(INamingContainer)

Obtiene los metadatos de la tabla para el control de datos especificado.

SetMetaTable(INamingContainer, MetaTable)

Establece los metadatos de la tabla para el control de datos especificado.

SetMetaTable(INamingContainer, MetaTable, IDictionary<String,Object>)

Establece los metadatos de tabla y la asignación de valores predeterminados para el control de datos especificado.

SetMetaTable(INamingContainer, MetaTable, Object)

Establece los metadatos de tabla y la asignación de valores predeterminados para el control de datos especificado.

TryGetMetaTable(INamingContainer, MetaTable)

Determina si están disponibles los metadatos de la tabla.

EnableDynamicData(INamingContainer, Type)

Habilita el comportamiento de datos dinámicos para el control de datos especificado.

EnableDynamicData(INamingContainer, Type, IDictionary<String,Object>)

Habilita el comportamiento de datos dinámicos para el control de datos especificado.

EnableDynamicData(INamingContainer, Type, Object)

Habilita el comportamiento de datos dinámicos para el control de datos especificado.

Se aplica a

Consulte también