ImportCatalogPart Classe

Definição

Importa um arquivo de descrição para um controle WebPart (ou outro controle de servidor ASP.NET usado como um controle WebPart), de modo que os usuários podem adicionar o controle para uma página da Web com configurações predefinidas. Essa classe não pode ser herdada.

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
Herança

Exemplos

O exemplo de código a seguir demonstra como usar o ImportCatalogPart controle declarativamente e programaticamente em uma página da Web. O exemplo tem quatro partes:

  • Um controle de usuário que permite alterar os modos de exibição em uma página de Web Parts.

  • Uma página da Web que contém um CatalogZone controle e um ImportCatalogPart controle.

  • Um arquivo de código-fonte que contém dois controles personalizados WebPart .

  • Uma explicação de como o exemplo funciona quando você carrega a página em um navegador.

A primeira parte desse exemplo de código é o controle de usuário que permite que os usuários alterem os modos de exibição em uma página da Web. Você deve colocar o código-fonte a seguir em um arquivo e nomeá-lo Displaymodemenucs.ascx ou Displaymodemenuvb.ascx (dependendo de qual idioma você está usando). Para obter detalhes sobre modos de exibição e uma descrição do código-fonte nesse controle, consulte Passo a passo: alterando modos de exibição em uma página de Web Parts.

<%@ 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>

A segunda parte do exemplo de código é a página da Web. Na parte superior da página estão duas register diretivas, uma para o controle de usuário e outra para o componente compilado que contém os dois controles personalizados WebPart . Observe que a página tem uma referência declarativa ao ImportCatalogPart controle, aninhada dentro da hierarquia adequada de elementos declarativos. Observe também que vários valores de propriedade são atribuídos declarativamente no <asp:importcatalogpart> elemento . Além disso, o Button1_Click método atualiza vários valores de propriedade no ImportCatalogPart controle .

No controle da WebPartZone página, os dois controles personalizados WebPart são declarados. O <aspSample:userinfowebpart> controle tem um exportmode="all" atributo nele. Esse atributo é necessário para permitir que os usuários exportem um arquivo de descrição para o controle, que pode ser importado por outros usuários que desejam importar o controle usando o arquivo de descrição.

Observação

Para permitir que os usuários de um aplicativo de Web Parts exportem um arquivo de descrição para WebPart controles, você também deve habilitar o recurso de exportação no aplicativo Web adicionando um enableExport="true" atributo ao <webParts> elemento (que é um filho do <system.web> elemento) no arquivo Web.config. A exportação está desabilitada por padrão, portanto, se você ainda não tiver habilitado a exportação para seu aplicativo, edite o arquivo Web.config e faça-o agora.

<%@ 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>

A terceira parte do exemplo de código é o código-fonte dos dois WebPart controles. Observe que algumas propriedades nesses controles são marcadas com o WebBrowsable atributo . Isso permite que o PropertyGridEditorPart controle gere dinamicamente a interface do usuário (interface do usuário) para um usuário editar essas propriedades quando os controles estiverem no modo de edição. As propriedades também são marcadas com um WebDisplayName atributo , para especificar o texto do rótulo que aparece ao lado de cada controle na interface do usuário de edição. Para que o exemplo de código seja executado, você deve compilar esse código-fonte. Você pode compilá-lo explicitamente e colocar o assembly resultante na pasta Bin do seu site ou no cache de assembly global. Como alternativa, você pode colocar o código-fonte na pasta App_Code do site, em que ele será compilado dinamicamente em tempo de execução. Este exemplo de código usa compilação dinâmica. Para obter um passo a passo que demonstre ambos os métodos de compilação, consulte Passo a passo: Desenvolvendo e usando um controle de servidor Web personalizado.

O controle personalizado chamado TextDisplayWebPart é referenciado na página da Web com um <aspSample:TextDisplayWebPart> elemento . O outro controle, chamado UserInfoWebPart, também é declarado na página da Web inicialmente, embora você o remova mais tarde para demonstrar a capacidade de importar um arquivo de descrição para um controle.

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

Agora, execute o exemplo de código. Carregue a página da Web em um navegador. A primeira etapa é editar o UserInfoWebPart controle. Use o controle de lista suspensa Modo de Exibição e selecione Editar para alternar a página para o modo de edição. Clique no menu verbos do UserInfoWebPart controle (a seta para baixo na barra de título) e clique em Editar. Quando a interface do usuário de edição é exibida, vários controles de edição aparecem abaixo do UserInfoWebPart controle que você pode usar para editar seus valores de campo. Edite alguns campos, clique em OK e, em seguida, use a lista suspensa Modo de Exibição para retornar a página para o modo de navegação.

A segunda etapa é exportar um . Arquivo de descrição da WebPart para o UserInfoWebPart controle. Clique no menu de verbos no controle personalizado (representado pela seta para baixo na barra de título) e clique em Exportar. Siga as instruções para salvar um . Arquivo de descrição da WebPart para o controle. Agora feche a página da Web e edite a origem da página em um editor. Exclua o <aspSample:userinfowebpart> elemento de declaração de controle e salve e feche o arquivo. (Você está fazendo esta etapa para simular um usuário que ainda não tem o UserInfoWebPart controle, para que você possa importar o controle para a página).

Carregue a página da Web novamente em um navegador. O UserInfoWebPart controle não deve aparecer porque você o removeu. Use o controle de lista suspensa Modo de Exibição e selecione Catálogo para alternar a página para o modo de catálogo. ImportCatalogPart No controle , clique no botão Procurar e navegue até o . Arquivo WebPart que você criou e clique no botão Carregar. Uma referência ao controle deve aparecer com uma caixa de marcar ao lado dele. Selecione a caixa marcar e clique em Adicionar para adicionar o controle à página.

Enquanto estiver nessa exibição da página, clique no botão Atualizar ImportCatalogPart próximo à parte inferior da página para ver o efeito da atualização programática de vários valores de propriedade no ImportCatalogPart controle. Depois de clicar no botão, observe como as várias propriedades são alteradas na interface do usuário.

Por fim, clique em Fechar para sair do modo de catálogo e retorne a página para o modo de navegação. O UserInfoWebPart controle agora deve aparecer na página, contendo os valores que ele tinha quando você o exportou anteriormente.

Comentários

O ImportCatalogPart controle permite que os usuários importem um arquivo de descrição que descreva as configurações em um WebPart controle ou controle de servidor que um usuário deseja adicionar a uma WebPartZoneBase zona.

Depois que um usuário importa um arquivo de descrição, o WebPart controle referenciado no arquivo aparece dentro do ImportCatalogPart controle e um usuário pode adicionar o controle à página.

O arquivo de descrição não é o mesmo que o próprio controle. É um arquivo XML que termina com um . A extensão WebPart e contém pares nome/valor, principalmente valores de propriedade, que descrevem o estado do controle. O arquivo de descrição é criado de acordo com um formato XML especificado, conforme descrito no tópico Arquivos de Descrição do Controle de Web Parts.

Quanto ao controle ao qual o arquivo de descrição se refere, ele pode ser compilado em um assembly ou pode ser um controle de usuário definido em um arquivo .ascx. Em ambos os casos, o controle referenciado em um arquivo de descrição importado deve existir no servidor Web que hospeda a página que está tentando importar o controle. O arquivo de descrição faz referência ao nome do controle e ao assembly (ou arquivo) que contém o controle e o arquivo de descrição contém configurações que afetam os valores, a aparência e o comportamento da propriedade do controle.

O ImportCatalogPart controle permite que os usuários compartilhem configurações em controles. Um controle complexo pode ter muitas propriedades e configurações. Por exemplo, em um site de intranet típico dentro de uma grande empresa, um controle personalizado WebPart pode conter várias propriedades que contêm valores específicos para o ambiente dos usuários, como seus conexões de banco de dados, informações departammentais e assim por diante. O controle também pode conter várias propriedades que afetam sua aparência. Um usuário poderia personalizar o controle em um determinado site e fazê-lo funcionar corretamente, exportar um arquivo de descrição para o controle e, em seguida, compartilhar o arquivo de descrição com outros usuários, que poderiam importar o arquivo para adicionar o controle totalmente configurado a outros sites de intranet que eles têm permissão para personalizar. Desde que o assembly compilado ou o arquivo de controle do usuário que contém o controle exista no servidor Web que está hospedando seu site, os usuários podem adicionar o controle a outros sites.

O mecanismo pelo qual os usuários importam um arquivo de descrição (e, portanto, seu controle de servidor associado) para uma página da Web é o ImportCatalogPart controle, que um desenvolvedor de páginas deve adicionar a uma página da Web. Quando um usuário alterna a página para o modo de exibição de catálogo, o ImportCatalogPart controle é exibido e o usuário pode usar esse controle para navegar até o . Arquivo de descrição da WebPart correspondente ao controle de servidor que deseja importar. Seguindo a interface do usuário e as instruções fornecidas pelo ImportCatalogPart controle, um usuário pode adicionar o controle de servidor desejado à página da Web, com sua aparência e propriedades totalmente configuradas conforme especificado no arquivo de descrição importado.

Antes que o arquivo de descrição de um WebPart controle possa ser importado, um usuário deve primeiro criar (exportar) o arquivo com base em um controle existente WebPart . Um arquivo de descrição poderá ser exportado para um controle se as seguintes condições forem atendidas:

  • O controle tem propriedades marcadas com o Personalizable atributo .

  • O arquivo Web.config tem o valor do enableExport atributo definido como true no <webParts> elemento .

  • Um desenvolvedor define o valor da ExportMode propriedade no controle como um valor diferente do valor padrão de None, que proíbe a exportação. Se o valor da ExportMode propriedade for definido como NonSensitiveData, qualquer propriedade que contenha um IsSensitive parâmetro com um Personalizable atributo não será exportada quando um usuário exportar um arquivo de descrição. Isso permite que os desenvolvedores de controle impeçam que dados confidenciais, como cadeias de conexão, sejam exportados em determinadas situações.

Um usuário pode exportar um controle que foi habilitado para exportação clicando no verbo de exportação que aparece no menu de verbos do controle e seguindo as instruções para salvar um . Arquivo de descrição da WebPart para o controle. Outros usuários podem importar esse arquivo para configurar suas próprias instâncias do controle.

A ImportCatalogPart classe contém várias propriedades. A BrowseHelpText propriedade contém texto com instruções para os usuários quando eles navegam para localizar o arquivo de descrição. A ImportedPartLabelText propriedade contém texto que serve como um rótulo para o controle importado como ele aparece dentro do ImportCatalogPart controle . O PartImportErrorLabelText contém o texto exibido se ocorrer um erro quando uma descrição do controle estiver sendo importada. A Title propriedade substitui a propriedade base para atribuir um título padrão a um ImportCatalogPart controle se o desenvolvedor não atribuir um título. A UploadButtonText propriedade contém o texto do botão que o usuário clica para carregar o arquivo de descrição e a UploadHelpText propriedade contém as instruções para o processo de carregamento.

A ImportCatalogPart classe também contém vários métodos exclusivos. O GetAvailableWebPartDescriptions método recupera um WebPartDescription objeto para cada WebPart controle no catálogo, o que permite que um ImportCatalogPart controle exiba informações sobre cada controle de servidor sem precisar criar uma instância dele. O GetWebPart método obtém uma instância de um controle específico WebPart , com base na descrição passada para o método .

Há alguns riscos inerentes associados ao uso do ImportCatalogPart controle . Um exemplo é a possibilidade de importar dados mal-intencionados para seu aplicativo Web por meio dos arquivos de descrição usados para importação. Se alguém tiver colocado o código de script mal-intencionado como o valor de uma propriedade de cadeia de caracteres no arquivo de descrição, esse script poderá ser executado potencialmente quando um usuário importar o arquivo de descrição e adicionar o controle de servidor referenciado a uma página da Web. Para minimizar o risco de importar arquivos de descrição com dados mal-intencionados, os controles de servidor que têm propriedades do tipo cadeia de caracteres devem sempre codificar os dados da propriedade. Outro risco envolve a importação de tipos por meio de arquivos de descrição (consulte Arquivos de descrição de controle de Web Parts). Um usuário mal-intencionado pode enviar solicitações para carregar muitos assemblies no AppDomain, resultando em uma quantidade excessiva de memória sendo consumida.

Para evitar os riscos associados à importação, você pode desabilitar o recurso completamente não usando o recurso de importação ou o ImportCatalogPart controle . Ou você pode limitar o que os usuários têm acesso ao controle. Você pode fazer isso programaticamente, usando o gerenciamento de funções (consulte Gerenciando autorização usando funções). Por exemplo, quando a página é carregada, você pode testar para ver se um usuário está em uma determinada função, como a função de administrador. Se o usuário estiver na função, você poderá adicionar programaticamente o ImportCatalogPart controle à página desse usuário. Você também pode usar uma abordagem declarativa para limitar o conjunto de usuários que podem usar o ImportCatalogPart controle. Em sua página da Web que contém um catálogo, você pode colocar dois CatalogZone controles: um para usuários que podem importar e outro para aqueles que não podem. A zona para usuários que podem importar conteria o ImportCatalogPart controle . A zona em si poderia ser colocada dentro de um LoginView controle , o que permitiria limitar o uso do controle na zona somente aos usuários autenticados ou às funções que você especificar.

Construtores

ImportCatalogPart()

Inicializa uma nova instância da classe ImportCatalogPart.

Propriedades

AccessKey

Obtém ou define a tecla de acesso que permite navegar rapidamente para o controle do servidor Web.

(Herdado de WebControl)
Adapter

Obtém o adaptador específico de navegador para o controle.

(Herdado de Control)
AppRelativeTemplateSourceDirectory

Obtém ou define o diretório virtual relativo de aplicativo do objeto Page ou UserControl que contém este controle.

(Herdado de Control)
Attributes

Obtém a coleção de atributos arbitrários (somente para renderização) que não correspondem às propriedades do controle.

(Herdado de WebControl)
BackColor

Obtém ou define a cor da tela de fundo do controle do servidor Web.

(Herdado de WebControl)
BackImageUrl

Obtém ou define a URL da imagem de tela de fundo do controle do painel.

(Herdado de Panel)
BindingContainer

Obtém o controle que contém a vinculação de dados desse controle.

(Herdado de Control)
BorderColor

Obtém ou define a cor da borda do controle Web.

(Herdado de WebControl)
BorderStyle

Obtém ou define o estilo de borda do controle de servidor Web.

(Herdado de WebControl)
BorderWidth

Obtém ou define a largura da borda do controle de servidor Web.

(Herdado de WebControl)
BrowseHelpText

Obtém ou define uma mensagem de texto que instrui os usuários a navegar até o local de um arquivo de descrição.

ChildControlsCreated

Obtém um valor que indica se os controles filho do controle de servidor foram criados.

(Herdado de Control)
ChromeState

Obtém ou define se um controle Part está em um estado minimizado ou normal.

(Herdado de Part)
ChromeType

Obtém ou define o tipo de borda que emoldura um controle de Web Parts.

(Herdado de Part)
ClientID

Obtém a ID de controle de marcação HTML gerada pelo ASP.NET.

(Herdado de Control)
ClientIDMode

Obtém ou define o algoritmo usado para gerar o valor da propriedade ClientID.

(Herdado de Control)
ClientIDSeparator

Obtém um valor de caractere que representa o caractere separador usado na propriedade ClientID.

(Herdado de Control)
Context

Obtém o objeto HttpContext associado ao controle de servidor para a solicitação da Web atual.

(Herdado de Control)
Controls

Obtém um objeto ControlCollection que contém os controles filho para um controle de servidor especificado na hierarquia de interface do usuário.

(Herdado de Part)
ControlStyle

Obtém o estilo de um controle de servidor Web. Essa propriedade é usada principalmente por desenvolvedores de controle.

(Herdado de WebControl)
ControlStyleCreated

Obtém um valor que indica se um objeto Style foi criado para a propriedade ControlStyle. Essa propriedade é usada principalmente por desenvolvedores de controle.

(Herdado de WebControl)
CssClass

Obtém ou define a classe CSS (Folha de Estilos em Cascata) renderizada pelo controle do servidor Web no cliente.

(Herdado de WebControl)
DataItemContainer

Obtém uma referência ao contêiner de nomenclatura se o contêiner de nomenclatura implementa o IDataItemContainer.

(Herdado de Control)
DataKeysContainer

Obtém uma referência ao contêiner de nomenclatura se o contêiner de nomenclatura implementa o IDataKeysControl.

(Herdado de Control)
DefaultButton

Obtém ou define qual botão na interface do usuário é tratado como o botão padrão que recebe o foco quando o formulário que contém o botão é renderizado. Essa propriedade não se destina a ser chamada do código do desenvolvedor de página.

Description

Obtém ou define uma frase curta que resume o que o controle Part faz, para ser usada em dicas de ferramenta e catálogos de controles Part.

(Herdado de Part)
DesignMode

Obtém um valor que indica se um controle está sendo usado em uma superfície de design.

(Herdado de Control)
Direction

Obtém ou define a direção na qual exibir controles que incluem texto em um controle Panel.

(Herdado de Panel)
DisplayTitle

Obtém uma cadeia de caracteres que contém o título atual real de um controle de CatalogPart.

(Herdado de CatalogPart)
Enabled

Obtém ou define um valor que indica se o controle do servidor Web está habilitado.

(Herdado de WebControl)
EnableTheming

Obtém ou define um valor que indica se os temas se aplicam a esse controle.

(Herdado de WebControl)
EnableViewState

Obtém ou define um valor que indica se o controle de servidor persiste seu estado de exibição e o estado de exibição de quaisquer controles filho que ele contém, para o cliente solicitante.

(Herdado de Control)
Events

Obtém uma lista de delegados de manipulador de eventos para o controle. Esta propriedade é somente para leitura.

(Herdado de Control)
Font

Obtém as propriedades de fonte associadas ao controle do servidor Web.

(Herdado de WebControl)
ForeColor

Obtém ou define a cor de primeiro plano (normalmente a cor do texto) do controle de servidor Web.

(Herdado de WebControl)
GroupingText

Obtém ou define a legenda para o grupo de controles contidos no controle do painel.

(Herdado de Panel)
HasAttributes

Obtém um valor que indica se o controle tem atributos definidos.

(Herdado de WebControl)
HasChildViewState

Obtém um valor que indica se os controles filho do controle de servidor atual têm alguma configuração de estado de exibição salva.

(Herdado de Control)
Height

Obtém ou define a altura do controle do servidor Web.

(Herdado de WebControl)
HorizontalAlign

Obtém ou define o alinhamento horizontal do conteúdo no painel.

(Herdado de Panel)
ID

Obtém ou define o identificador programático atribuído ao controle de servidor.

(Herdado de Control)
IdSeparator

Obtém o caractere usado para separar identificadores de controle.

(Herdado de Control)
ImportedPartLabelText

Obtém ou define o texto exibido após um usuário importar um arquivo de descrição para representar ou descrever o controle importado no catálogo de controles importados.

IsChildControlStateCleared

Obtém um valor que indica se os controles contidos dentro deste controle têm estado de controle.

(Herdado de Control)
IsEnabled

Obtém um valor que indica se o controle está habilitado.

(Herdado de WebControl)
IsTrackingViewState

Obtém um valor que indica se o controle de servidor está salvando alterações no estado de exibição.

(Herdado de Control)
IsViewStateEnabled

Obtém um valor que indica se o estado de exibição está habilitado para esse controle.

(Herdado de Control)
LoadViewStateByID

Obtém um valor que indica se o controle participa do carregamento do estado de exibição por ID em vez do índice.

(Herdado de Control)
NamingContainer

Obtém uma referência ao contêiner de nomenclatura do controle do servidor, que cria um namespace exclusivo para diferenciar entre os controles de servidor com o mesmo valor da propriedade ID.

(Herdado de Control)
Page

Obtém uma referência para a instância Page que contém o controle de servidor.

(Herdado de Control)
Parent

Obtém uma referência ao controle pai do controle de servidor na hierarquia de controle da página.

(Herdado de Control)
PartImportErrorLabelText

Obtém ou define uma mensagem de erro que será exibida se ocorrer um erro durante o processo de importação.

RenderingCompatibility

Obtém um valor que especifica a versão do ASP.NET com a qual o HTML renderizado será compatível.

(Herdado de Control)
ScrollBars

Obtém ou define a visibilidade e a posição das barras de rolagem em um controle Panel.

(Herdado de Panel)
Site

Obtém informações sobre o contêiner que hospeda o controle atual quando renderizados em uma superfície de design.

(Herdado de Control)
SkinID

Obtém ou define a capa a ser aplicada ao controle.

(Herdado de WebControl)
Style

Obtém uma coleção de atributos de texto que serão renderizados como um atributo de estilo na marca externa do controle de servidor Web.

(Herdado de WebControl)
SupportsDisabledAttribute

Obtém um valor que indica se o controle deve definir o atributo disabled do elemento HTML renderizado para "desabilitado" quando a propriedade do controle IsEnabled é false.

(Herdado de Panel)
TabIndex

Obtém ou define o índice de tabulação do controle do servidor Web.

(Herdado de WebControl)
TagKey

Obtém o valor HtmlTextWriterTag que corresponde ao controle do servidor Web. Essa propriedade é usada principalmente por desenvolvedores de controle.

(Herdado de WebControl)
TagName

Obtém o nome da marca de controle. Essa propriedade é usada principalmente por desenvolvedores de controle.

(Herdado de WebControl)
TemplateControl

Obtém ou define uma referência ao modelo que contém este controle.

(Herdado de Control)
TemplateSourceDirectory

Obtém o diretório virtual do Page ou UserControl que contém o controle do servidor atual.

(Herdado de Control)
Title

Obtém ou define o título que aparece na barra de título de um controle ImportCatalogPart.

ToolTip

Obtém ou define o texto exibido quando o ponteiro do mouse passa sobre o controle de servidor Web.

(Herdado de WebControl)
UniqueID

Obtém o identificador exclusivo, qualificado segundo a hierarquia, para o controle de servidor.

(Herdado de Control)
UploadButtonText

Obtém ou define o texto para o controle Button que inicia o upload de um arquivo de descrição.

UploadHelpText

Obtém ou define o texto da mensagem que informa ao usuário como carregar um arquivo de descrição.

ValidateRequestMode

Obtém ou define um valor que indica se o controle verifica a entrada do cliente do navegador para valores potencialmente perigosos.

(Herdado de Control)
ViewState

Obtém um dicionário de informações de estado que permite salvar e restaurar o estado de exibição de um controle de servidor em várias solicitações para a mesma página.

(Herdado de Control)
ViewStateIgnoresCase

Obtém um valor que indica se o objeto StateBag não diferencia maiúsculas de minúsculas.

(Herdado de Control)
ViewStateMode

Obtém ou define o modo de estado de exibição deste controle.

(Herdado de Control)
Visible

Obtém ou define um valor que indica se um controle de servidor é renderizado como uma interface do usuário na página.

(Herdado de Control)
WebPartManager

Obtém uma referência à instância atual da classe WebPartManager.

(Herdado de CatalogPart)
Width

Obtém ou define a largura do controle de servidor Web.

(Herdado de WebControl)
Wrap

Obtém ou define um valor que indica se o conteúdo será quebrado dentro do painel.

(Herdado de Panel)
Zone

Obtém uma referência à zona de CatalogZoneBase que contém um controle de CatalogPart.

(Herdado de CatalogPart)

Métodos

AddAttributesToRender(HtmlTextWriter)

Adiciona informações sobre a imagem de tela de fundo, o alinhamento, o encapsulamento e a direção para a lista de atributos a renderizar.

(Herdado de Panel)
AddedControl(Control, Int32)

Chamado após um controle filho ser adicionado à coleção Controls do objeto Control.

(Herdado de Control)
AddParsedSubObject(Object)

Notifica o controle de servidor de que um elemento, XML ou HTML, foi analisado e adiciona o elemento ao objeto ControlCollection do controle de servidor.

(Herdado de Control)
ApplyStyle(Style)

Copia os elementos não vazios do estilo especificado para o controle da Web, substituindo os elementos de estilo existentes no controle. Esse método é usado principalmente por desenvolvedores de controles.

(Herdado de WebControl)
ApplyStyleSheetSkin(Page)

Aplica as propriedades de estilo definidas na folha de estilos da página ao controle.

(Herdado de Control)
BeginRenderTracing(TextWriter, Object)

Inicia o rastreamento de tempo de design de dados de renderização.

(Herdado de Control)
BuildProfileTree(String, Boolean)

Reúne informações sobre o controle de servidor e as envia para a propriedade Trace para serem exibidas quando o rastreamento está habilitado para a página.

(Herdado de Control)
ClearCachedClientID()

Define o valor ClientID armazenado em cache como null.

(Herdado de Control)
ClearChildControlState()

Exclui as informações de estado de controle para os controles filho do controle de servidor.

(Herdado de Control)
ClearChildState()

Exclui as informações de estado de exibição e de estado de controle para todos os controles filho do controle de servidor.

(Herdado de Control)
ClearChildViewState()

Exclui as informações de estado de exibição para todos os controles filho do controle de servidor.

(Herdado de Control)
ClearEffectiveClientIDMode()

Define a propriedade ClientIDMode da instância de controle atual e de quaisquer controles filho para Inherit.

(Herdado de Control)
CopyBaseAttributes(WebControl)

Copia as propriedades que não são encapsuladas pelo objeto Style de controle do servidor Web especificado ao controle de servidor Web do qual este método é chamado. Esse método é usado principalmente por desenvolvedores de controle.

(Herdado de WebControl)
CreateChildControls()

Chamado pela estrutura de página do ASP.NET para notificar os controles do servidor que usam a implementação baseada em composição para criar os controles filho para preparar-se para um postback ou renderização.

(Herdado de Control)
CreateControlCollection()

Cria um novo objeto ControlCollection para manter os controles filho (literal e servidor) do controle do servidor.

(Herdado de Control)
CreateControlStyle()

Cria um objeto de estilo que é usado internamente pelo controle Panel para implementar todas as propriedades relacionadas ao estilo.

(Herdado de Panel)
DataBind()

Associa uma fonte de dados ao controle de servidor chamado e a todos os seus controles filho.

(Herdado de Part)
DataBind(Boolean)

Associa uma fonte de dados ao controle de servidor invocado e todos os seus controles filho com uma opção para gerar o evento DataBinding.

(Herdado de Control)
DataBindChildren()

Associa uma fonte de dados aos controles filho do controle do servidor.

(Herdado de Control)
Dispose()

Permite que um controle de servidor execute a limpeza final antes do lançamento da memória.

(Herdado de Control)
EndRenderTracing(TextWriter, Object)

Encerra o rastreamento de tempo de design de dados de renderização.

(Herdado de Control)
EnsureChildControls()

Determinará se o controle de servidor contiver controles filho. Se ele não contiver, ele criará controles filho.

(Herdado de Control)
EnsureID()

Cria um identificador para controles que não têm um identificador atribuído.

(Herdado de Control)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
FindControl(String)

Procura o atual contêiner de nomenclatura de um controle de servidor com o parâmetro id especificado.

(Herdado de Control)
FindControl(String, Int32)

Procura o contêiner de nomenclatura atual para um controle de servidor com o id especificado e um inteiro especificado no parâmetro pathOffset, que auxilia na pesquisa. Você não deve substituir esta versão do método FindControl.

(Herdado de Control)
Focus()

Define o foco de entrada para um controle.

(Herdado de Control)
GetAvailableWebPartDescriptions()

Retorna uma coleção de descrições dos controles WebPart disponíveis em um catálogo.

GetDesignModeState()

Recupera o estado atual da zona pai de um controle de CatalogPart.

(Herdado de CatalogPart)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetRouteUrl(Object)

Obtém a URL que corresponde a um conjunto de parâmetros de rota.

(Herdado de Control)
GetRouteUrl(RouteValueDictionary)

Obtém a URL que corresponde a um conjunto de parâmetros de rota.

(Herdado de Control)
GetRouteUrl(String, Object)

Obtém a URL que corresponde a um conjunto de parâmetros de rota e um nome de rota.

(Herdado de Control)
GetRouteUrl(String, RouteValueDictionary)

Obtém a URL que corresponde a um conjunto de parâmetros de rota e um nome de rota.

(Herdado de Control)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetUniqueIDRelativeTo(Control)

Retorna a parte prefixada da propriedade UniqueID do controle especificado.

(Herdado de Control)
GetWebPart(WebPartDescription)

Retorna uma referência a um controle WebPart com base nos valores da descrição passada para o método.

HasControls()

Determina se o controle de servidor contém algum controle filho.

(Herdado de Control)
HasEvents()

Retorna um valor que indica se os eventos são registrados para o controle ou qualquer controle filho.

(Herdado de Control)
IsLiteralContent()

Determina se o controle de servidor contém apenas o conteúdo literal.

(Herdado de Control)
LoadControlState(Object)

Restaura informações de estado de controle de uma solicitação de página anterior que foi salva pelo método SaveControlState().

(Herdado de Control)
LoadViewState(Object)

Restaura informações de estado de exibição de uma solicitação anterior que foi salva com o método SaveViewState().

(Herdado de WebControl)
MapPathSecure(String)

Recupera o caminho físico para o qual um caminho virtual é mapeado, relativo ou virtual.

(Herdado de Control)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MergeStyle(Style)

Copia os elementos não vazios do estilo especificado para o controle da Web, mas não substituirá os elementos de estilo existentes do controle. Esse método é usado principalmente por desenvolvedores de controle.

(Herdado de WebControl)
OnBubbleEvent(Object, EventArgs)

Determina se o evento do controle de servidor é passado um nível acima da hierarquia de controle de servidor da interface do usuário da página.

(Herdado de Control)
OnDataBinding(EventArgs)

Aciona o evento DataBinding.

(Herdado de Control)
OnInit(EventArgs)

Aciona o evento Init.

(Herdado de Control)
OnLoad(EventArgs)

Aciona o evento Load.

(Herdado de Control)
OnPreRender(EventArgs)

Aciona o evento PreRender.

(Herdado de CatalogPart)
OnUnload(EventArgs)

Aciona o evento Unload.

(Herdado de Control)
OpenFile(String)

Obtém um Stream usado para ler um arquivo.

(Herdado de Control)
RaiseBubbleEvent(Object, EventArgs)

Atribui quaisquer fontes de evento e suas informações para o pai do controle.

(Herdado de Control)
RemovedControl(Control)

Chamado após um controle filho ser removido da coleção Controls do objeto Control.

(Herdado de Control)
Render(HtmlTextWriter)

Renderiza o controle para o gravador de HTML especificado.

(Herdado de WebControl)
RenderBeginTag(HtmlTextWriter)

Renderiza a marca de abertura HTML do controle Panel para o gravador especificado.

(Herdado de Panel)
RenderChildren(HtmlTextWriter)

Gera o conteúdo dos filhos de um controle de servidor para um objeto HtmlTextWriter fornecido, que grava o conteúdo a ser renderizado no cliente.

(Herdado de Control)
RenderContents(HtmlTextWriter)

Renderiza o conteúdo do controle no gravador especificado. Esse método é usado principalmente por desenvolvedores de controle.

(Herdado de WebControl)
RenderControl(HtmlTextWriter)

Gera o conteúdo do controle de servidor para um objeto HtmlTextWriter fornecido e armazena informações de rastreamento sobre o controle caso o rastreamento esteja habilitado.

(Herdado de Control)
RenderControl(HtmlTextWriter, ControlAdapter)

Gera o conteúdo do controle de servidor a um objeto HtmlTextWriter fornecido usando um objeto ControlAdapter fornecido.

(Herdado de Control)
RenderEndTag(HtmlTextWriter)

Renderiza a marca de fechamento HTML do controle Panel para o gravador especificado.

(Herdado de Panel)
ResolveAdapter()

Obtém o adaptador de controle responsável por renderizar o controle especificado.

(Herdado de Control)
ResolveClientUrl(String)

Obtém uma URL que pode ser usada pelo navegador.

(Herdado de Control)
ResolveUrl(String)

Converte uma URL em uma que possa ser usada no cliente solicitante.

(Herdado de Control)
SaveControlState()

Salva as alterações de estado do controle de servidor que ocorreram desde a hora em que ocorreu o postback da página no servidor.

(Herdado de Control)
SaveViewState()

Salva qualquer estado que foi modificado depois que o método TrackViewState() foi invocado.

(Herdado de WebControl)
SetDesignModeState(IDictionary)

Define os dados de tempo de design para um controle.

(Herdado de CatalogPart)
SetRenderMethodDelegate(RenderMethod)

Atribui um delegado do manipulador de eventos para renderizar o controle de servidor e seu conteúdo em seu controle pai.

(Herdado de Control)
SetTraceData(Object, Object)

Define os dados de rastreamento para o rastreamento de tempo de design dos dados de renderização, usando a chave e o valor de dados de rastreamento.

(Herdado de Control)
SetTraceData(Object, Object, Object)

Define os dados de rastreamento para o rastreamento de tempo de design dos dados de renderização, usando o objeto rastreado, a chave e o valor de dados de rastreamento.

(Herdado de Control)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
TrackViewState()

Faz com que o controle acompanhe as alterações a seu estado de exibição para que eles possam ser armazenados na propriedade ViewState do objeto.

(Herdado de WebControl)

Eventos

DataBinding

Ocorre quando o controle de servidor é associado a uma fonte de dados.

(Herdado de Control)
Disposed

Ocorre quando um controle de servidor é liberado da memória, que é o último estágio do ciclo de vida de controle de servidor quando uma página ASP.NET é solicitada.

(Herdado de Control)
Init

Ocorre quando o controle de servidor é inicializado, que é a primeira etapa do ciclo de vida.

(Herdado de Control)
Load

Ocorre quando o controle de servidor é carregado no objeto Page.

(Herdado de Control)
PreRender

Ocorre depois que o objeto Control é carregado, mas antes da renderização.

(Herdado de Control)
Unload

Ocorre quando o controle de servidor é descarregado da memória.

(Herdado de Control)

Implantações explícitas de interface

IAttributeAccessor.GetAttribute(String)

Obtém um atributo do controle da Web com o nome especificado.

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

Define um atributo do controle da Web para o nome e o valor especificados.

(Herdado de WebControl)
ICompositeControlDesignerAccessor.RecreateChildControls()

Permite ao desenvolvedor de um designer para um controle Part de composição recriar os controles filho do controle na superfície de design.

(Herdado de Part)
IControlBuilderAccessor.ControlBuilder

Para obter uma descrição desse membro, confira ControlBuilder.

(Herdado de Control)
IControlDesignerAccessor.GetDesignModeState()

Para obter uma descrição desse membro, confira GetDesignModeState().

(Herdado de Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Para obter uma descrição desse membro, confira SetDesignModeState(IDictionary).

(Herdado de Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Para obter uma descrição desse membro, confira SetOwnerControl(Control).

(Herdado de Control)
IControlDesignerAccessor.UserData

Para obter uma descrição desse membro, confira UserData.

(Herdado de Control)
IDataBindingsAccessor.DataBindings

Para obter uma descrição desse membro, confira DataBindings.

(Herdado de Control)
IDataBindingsAccessor.HasDataBindings

Para obter uma descrição desse membro, confira HasDataBindings.

(Herdado de Control)
IExpressionsAccessor.Expressions

Para obter uma descrição desse membro, confira Expressions.

(Herdado de Control)
IExpressionsAccessor.HasExpressions

Para obter uma descrição desse membro, confira HasExpressions.

(Herdado de Control)
IParserAccessor.AddParsedSubObject(Object)

Para obter uma descrição desse membro, confira AddParsedSubObject(Object).

(Herdado de Control)

Métodos de Extensão

FindDataSourceControl(Control)

Retorna a fonte de dados associada ao controle de dados do controle especificado.

FindFieldTemplate(Control, String)

Retorna o modelo do campo para a coluna especificada no contêiner de nomenclatura do controle especificado.

FindMetaTable(Control)

Retorna o objeto metatable para o controle que contém dados.

GetDefaultValues(INamingContainer)

Obtém a coleção de valores padrão para o controle de dados especificado.

GetMetaTable(INamingContainer)

Obtém os metadados de tabela para o controle de dados especificado.

SetMetaTable(INamingContainer, MetaTable)

Define os metadados de tabela para o controle de dados especificado.

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

Define os metadados de tabela e o mapeamento de valores padrão para o controle de dados especificado.

SetMetaTable(INamingContainer, MetaTable, Object)

Define os metadados de tabela e o mapeamento de valores padrão para o controle de dados especificado.

TryGetMetaTable(INamingContainer, MetaTable)

Determina se os metadados da tabela estão disponíveis.

EnableDynamicData(INamingContainer, Type)

Habilita o comportamento de Dados Dinâmicos para o controle de dados especificado.

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

Habilita o comportamento de Dados Dinâmicos para o controle de dados especificado.

EnableDynamicData(INamingContainer, Type, Object)

Habilita o comportamento de Dados Dinâmicos para o controle de dados especificado.

Aplica-se a

Confira também