ImportCatalogPart Classe

Definição

Importa um ficheiro de descrição para um controlo WebPart (ou outro controlo ASP.NET servidor usado como controlo WebPart), para que os utilizadores possam adicionar o controlo a uma página Web com definições pré-definidas. Esta 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 seguinte demonstra como usar o ImportCatalogPart controlo de forma declarativa e programática numa página Web. O exemplo tem quatro partes:

  • Um controlo de utilizador que permite alterar modos de visualização numa página de Web Parts.

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

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

  • Uma explicação de como funciona o exemplo quando carregas a página num navegador.

A primeira parte deste exemplo de código é o controlo do utilizador que permite aos utilizadores alterar modos de visualização numa página Web. Deves colocar o seguinte código-fonte num ficheiro e chamar-lhe Displaymodemenucs.ascx ou Displaymodemenuvb.ascx (dependendo da língua que estás a usar). Para detalhes sobre modos de visualização e uma descrição do código-fonte neste controlo, consulte 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>

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

No controlo da WebPartZone página, os dois controlos personalizados WebPart são declarados. O <aspSample:userinfowebpart> controlo tem uma exportmode="all" característica. Este atributo é necessário para permitir que os utilizadores exportem um ficheiro de descrição para o controlo, que pode depois ser importado por outros utilizadores que desejem importar o controlo através do ficheiro de descrição.

Note

Para permitir que utilizadores de uma aplicação Web Parts exportem um ficheiro de descrição para WebPart controlos, deve também ativar a funcionalidade de exportação na aplicação Web adicionando um enableExport="true" atributo ao <webParts> elemento (que é filho do <system.web> elemento) no ficheiro Web.config. A exportação está desativada por defeito, por isso, se ainda não ativou a exportação para a sua aplicação, edite o ficheiro Web.config e faça isso 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 do código é o código-fonte dos dois WebPart controlos. Note que algumas propriedades nestes controlos estão marcadas com o WebBrowsable atributo. Isto permite que o PropertyGridEditorPart controlo gere dinamicamente a interface de utilizador (UI) para que o utilizador possa editar essas propriedades quando os controlos estão em modo de edição. As propriedades também são marcadas com um WebDisplayName atributo, para especificar o texto da etiqueta que aparece ao lado de cada controlo na interface de edição. Para que o exemplo de código seja executado, tens de compilar este código-fonte. Pode compilar explicitamente e colocar o assembly resultante na pasta Bin do seu site ou na cache global assembly. Alternativamente, pode colocar o código-fonte na pasta App_Code do seu site, onde será compilado dinamicamente em tempo de execução. Este exemplo de código utiliza compilação dinâmica. Para um guia que demonstra ambos os métodos de compilação, veja Guia: Desenvolvimento e Utilização de um Controlo de Servidor Web Personalizado.

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

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 executa o exemplo do código. Carregue a página Web num navegador. O primeiro passo é editar o UserInfoWebPart controlo. Use o menu suspenso de controlo da lista Modo de Exibição e selecione Editar para mudar a página para o modo de edição. Clica no menu de verbos do UserInfoWebPart controlo (a seta para baixo na barra de título) e depois clica em Editar. Quando a interface de edição aparece, vários controlos de edição aparecem abaixo do UserInfoWebPart controlo que pode usar para editar os valores dos campos. Edite alguns campos, clique em OK e depois use o menu suspenso Modo de Visualização para devolver a página ao modo de navegação.

O segundo passo é exportar um . Ficheiro de descrição WebPart para o UserInfoWebPart controlo. Clique no menu verbos no controlo personalizado (representado pela seta para baixo na barra de título) e clique em Exportar. Siga as instruções para guardar um . Ficheiro de descrição WebPart para o controlo. Agora fecha a página Web e edita a fonte da página num editor. Apaga o <aspSample:userinfowebpart> elemento de declaração de controlo, depois guarda e fecha o ficheiro. (Estás a fazer este passo para simular um utilizador que ainda não tem o UserInfoWebPart controlo, para poderes importar o controlo para a página).

Carrega a página Web novamente num navegador. O UserInfoWebPart controlo não deveria aparecer, porque foi tu que o removeste. Use o controlo de lista suspensa do Modo de Visualização e selecione Catálogo para mudar a página para o modo catálogo. No ImportCatalogPart controlo, clique no botão Explorar e navegue até ao . Ficheiro WebPart que criaste, depois clica no botão Carregar . Deve aparecer uma referência ao controlo com uma caixa de seleção ao lado. Selecione a caixa de seleção, depois clique em Adicionar para adicionar o controlo à página.

Enquanto estiver nesta vista da página, clique no botão Atualizar ImportCatalogPart perto do fundo da página para ver o efeito da atualização programada de vários valores de propriedade no ImportCatalogPart controlo. Depois de clicar no botão, observe como as várias propriedades são alteradas na interface.

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

Observações

O ImportCatalogPart controlo permite aos utilizadores importar um ficheiro de descrição que descreve definições num WebPart controlo de controlo ou servidor que o utilizador queira adicionar a uma WebPartZoneBase zona.

Depois de um utilizador importar um ficheiro de descrição, o WebPart controlo referenciado no ficheiro aparece dentro do ImportCatalogPart controlo, e o utilizador pode adicionar o controlo à página.

O ficheiro de descrição não é o mesmo que o controlo em si. É um ficheiro XML que termina com um ficheiro . Extensão WebPart e contém pares nome/valor — maioritariamente valores de propriedade — que descrevem o estado do controlo. O ficheiro de descrição é criado de acordo com um formato XML especificado, conforme descrito no tópico Web Parts Control Description Files.

Quanto ao controlo a que o ficheiro de descrição se refere, pode ser compilado numa assembleia, ou pode ser um controlo de utilizador definido num ficheiro .ascx. Em qualquer dos casos, o controlo referenciado num ficheiro de descrição importado deve existir no servidor Web que hospeda a página que está a tentar importar o controlo. O ficheiro de descrição refere-se ao nome do controlo e ao conjunto (ou ficheiro) que contém o controlo, e o ficheiro de descrição contém definições que afetam os valores das propriedades, a aparência e o comportamento do controlo.

O ImportCatalogPart controlo permite aos utilizadores partilhar definições nos controlos. Um controlo complexo pode ter muitas propriedades e definições. Por exemplo, num site típico de intranet dentro de uma grande empresa, um controlo personalizado WebPart pode conter várias propriedades que contêm valores específicos do ambiente do utilizador, como as suas ligações à base de dados, informações departamentais, e assim por diante. O controlo pode também conter várias propriedades que afetam a sua aparência. Um utilizador podia personalizar o controlo num determinado site e fazê-lo funcionar corretamente, exportar um ficheiro de descrição para o controlo e depois partilhar o ficheiro de descrição com outros utilizadores, que podiam importar o ficheiro para adicionar o controlo totalmente configurado a outros sites de intranet que pudesse personalizar. Desde que o assembly compilado ou o ficheiro de controlo do utilizador que contém o controlo exista no servidor Web que aloja o seu site, os utilizadores podem adicionar o controlo a outros sites.

O mecanismo pelo qual os utilizadores importam um ficheiro de descrição (e, portanto, o seu controlo de servidor associado) para uma página Web é o ImportCatalogPart controlo, que um programador de página deve adicionar a uma página Web. Quando um utilizador muda a página para o modo de visualização de catálogo, o ImportCatalogPart controlo aparece, e o utilizador pode usar este controlo para navegar até ao . Ficheiro de descrição da WebPart correspondente ao controlo do servidor que querem importar. Seguindo a interface e as instruções fornecidas pelo ImportCatalogPart controlo, o utilizador pode adicionar o controlo do servidor desejado à página Web, com a sua aparência e propriedades totalmente configuradas conforme especificado no ficheiro de descrição importado.

Antes de o ficheiro de descrição de um WebPart controlo poder ser importado, o utilizador deve primeiro criar (exportar) o ficheiro com base num controlo existente WebPart . Um ficheiro de descrição pode ser exportado para um controlo se forem cumpridas as seguintes condições:

  • O controlo tem propriedades marcadas com o Personalizable atributo.

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

  • Um promotor define o valor da ExportMode propriedade no controlo para um valor diferente do valor padrão de None, o que proíbe a exportação. Se o ExportMode valor da propriedade for definido para NonSensitiveData, qualquer propriedade que contenha um IsSensitive parâmetro com um Personalizable atributo não é exportada quando um utilizador exporta um ficheiro de descrição. Isto permite aos programadores de controlo impedir que dados sensíveis, como cadeias de ligação, sejam exportados em determinadas situações.

Um utilizador pode exportar um controlo que tenha sido ativado para exportação clicando no verbo de exportação que aparece no menu verbos do controlo e seguindo as instruções para guardar um . Ficheiro de descrição WebPart para o controlo. Outros utilizadores podem então importar este ficheiro para configurar as suas próprias instâncias do controlo.

A ImportCatalogPart classe contém várias propriedades. A BrowseHelpText propriedade contém texto com instruções para os utilizadores quando navegarem para localizar o ficheiro de descrição. A ImportedPartLabelText propriedade contém texto que serve de rótulo para o controlo importado à medida que aparece dentro do controlo ImportCatalogPart . O PartImportErrorLabelText texto contém que é exibido caso ocorra um erro quando uma descrição de controlo está a ser importada. A Title propriedade sobrepõe-se à propriedade base para atribuir um título padrão a um ImportCatalogPart controlo caso o promotor não atribua um título. A UploadButtonText propriedade contém o texto do botão que o utilizador clica para carregar o ficheiro de descrição, e a UploadHelpText propriedade contém as instruções para o processo de carregamento.

A ImportCatalogPart aula também contém vários métodos únicos. O GetAvailableWebPartDescriptions método recupera um WebPartDescription objeto para cada WebPart controlo no catálogo, o que permite a um ImportCatalogPart controlo exibir informação sobre cada controlo de servidor sem ter de criar uma instância destes. O GetWebPart método recebe uma instância de um determinado WebPart controlo, com base na descrição passada ao método.

Existem alguns riscos inerentes associados ao uso do ImportCatalogPart controlo. Um exemplo é a possibilidade de importar dados maliciosos para a sua aplicação Web através dos ficheiros de descrição usados para a importação. Se alguém colocou código de script malicioso como valor de uma propriedade de cadeia no ficheiro de descrição, então esse script pode potencialmente ser executado quando um utilizador importa o ficheiro de descrição e adiciona o controlo do servidor referenciado a uma página Web. Para minimizar o risco de importar ficheiros de descrição com dados maliciosos, os controlos de servidor que têm propriedades de tipo string devem sempre codificar os dados da propriedade. Outro risco envolve importar tipos através de ficheiros de descrição (ver Web Parts Control Description Files). Um utilizador malicioso podia submeter pedidos para carregar muitos assemblies no AppDomain, resultando num consumo excessivo de memória.

Para evitar os riscos associados à importação, pode desativar completamente a funcionalidade não usando a funcionalidade de importação ou o ImportCatalogPart controlo. Ou pode limitar o que os utilizadores têm acesso ao controlo. Pode fazer isto programaticamente, usando a gestão de funções (ver Gestão de Autorização Usando Papéis). Por exemplo, quando a página carrega, pode testar se um utilizador está num determinado papel, como o papel de administrador. Se o utilizador estiver na função, pode adicionar programaticamente o controlo ImportCatalogPart à página para esse utilizador. Também podes usar uma abordagem declarativa para limitar o conjunto de utilizadores que podem usar o ImportCatalogPart controlo. Dentro da sua página web que contém um catálogo, pode colocar dois CatalogZone controlos: um para utilizadores que podem importar e outro para aqueles que não podem. A zona para utilizadores que podem importar continha o ImportCatalogPart controlo. A própria zona poderia ser colocada dentro de um LoginView controlo, o que permitiria limitar o uso do controlo na zona apenas aos utilizadores ou funções autenticadas que especificar.

Construtores

Name Description
ImportCatalogPart()

Inicializa uma nova instância da ImportCatalogPart classe.

Propriedades

Name Description
AccessKey

Obtém ou define a chave de acesso que permite navegar rapidamente até ao controlo do servidor Web.

(Herdado de WebControl)
Adapter

Recebe o adaptador específico do navegador para o controlo.

(Herdado de Control)
AppRelativeTemplateSourceDirectory

Obtém ou define o diretório virtual relativo à aplicação do Page objeto ou UserControl que contém este controlo.

(Herdado de Control)
Attributes

Obtém a coleção de atributos arbitrários (apenas para renderização) que não correspondem a propriedades no controlo.

(Herdado de WebControl)
BackColor

Obtém ou define a cor de fundo do controlo do servidor Web.

(Herdado de WebControl)
BackImageUrl

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

(Herdado de Panel)
BindingContainer

Obtém o controlo que contém a ligação de dados desse controlo.

(Herdado de Control)
BorderColor

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

(Herdado de WebControl)
BorderStyle

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

(Herdado de WebControl)
BorderWidth

Obtém ou define a largura da fronteira do controlo do servidor Web.

(Herdado de WebControl)
BrowseHelpText

Recebe ou define uma mensagem de texto que instrui os utilizadores a navegar até à localização de um ficheiro de descrição.

ChildControlsCreated

Recebe um valor que indica se os controlos filhos do controlo do servidor foram criados.

(Herdado de Control)
ChromeState

Obtém ou define se um controlo de peça está num estado minimizado ou normal.

(Herdado de Part)
ChromeType

Obtém ou define o tipo de borda que enquadra um controlo de Web Parts.

(Herdado de Part)
ClientID

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

(Herdado de Control)
ClientIDMode

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

(Herdado de Control)
ClientIDSeparator

Obtém um valor de carácter que representa o carácter separador usado na ClientID propriedade.

(Herdado de Control)
Context

Obtém o controlo do HttpContext objeto associado ao servidor para o pedido Web atual.

(Herdado de Control)
Controls

Obtém um ControlCollection objeto que contém os controlos filhos de um servidor especificado na hierarquia da interface do utilizador.

(Herdado de Part)
ControlStyle

Recebe o estilo do controlo do servidor Web. Esta propriedade é utilizada principalmente por promotores de controlo.

(Herdado de WebControl)
ControlStyleCreated

Recebe um valor que indica se um Style objeto foi criado para a ControlStyle propriedade. Esta propriedade é utilizada principalmente por promotores de controlo.

(Herdado de WebControl)
CssClass

Obtém ou define a classe Cascading Style Sheet (CSS) renderizada pelo controlo do servidor Web no cliente.

(Herdado de WebControl)
DataItemContainer

Obtém uma referência ao contentor de nomes se o contentor implementar IDataItemContainer.

(Herdado de Control)
DataKeysContainer

Obtém uma referência ao contentor de nomes se o contentor implementar IDataKeysControl.

(Herdado de Control)
DefaultButton

Obtém ou define qual botão na interface de utilizador (UI) é tratado como o botão padrão que recebe o foco quando o formulário que contém o botão é renderizado. Esta propriedade não se destina a ser chamada a partir do código do programador de páginas.

Description

Recebe ou define uma frase breve que resume o que o controlo de peças faz, para uso em ToolTips e catálogos de controlos de peças.

(Herdado de Part)
DesignMode

Obtém um valor que indica se um controlo está a ser usado numa superfície de projeto.

(Herdado de Control)
Direction

Obtém ou define a direção para mostrar os controlos que incluem texto num Panel controlo.

(Herdado de Panel)
DisplayTitle

Recebe uma string que contém o título atual real de um CatalogPart controlo.

(Herdado de CatalogPart)
Enabled

Recebe ou define um valor que indica se o controlo do servidor Web está ativado.

(Herdado de WebControl)
EnableTheming

Recebe ou define um valor que indica se os temas se aplicam a este controlo.

(Herdado de WebControl)
EnableViewState

Recebe ou define um valor que indica se o controlo do servidor mantém o seu estado de visualização, e o estado de vista de quaisquer controlos filhos que contém, para o cliente solicitante.

(Herdado de Control)
Events

Obtém uma lista de delegados handler de eventos para o controlo. Esta propriedade é somente leitura.

(Herdado de Control)
Font

Obtém as propriedades da fonte associadas ao controlo do servidor Web.

(Herdado de WebControl)
ForeColor

Obtém ou define a cor do primeiro plano (tipicamente a cor do texto) do controlo do servidor Web.

(Herdado de WebControl)
GroupingText

Recebe ou define a legenda para o grupo de controlos que está contido no controlo do painel.

(Herdado de Panel)
HasAttributes

Recebe um valor que indica se o controlo tem atributos definidos.

(Herdado de WebControl)
HasChildViewState

Recebe um valor que indica se os controlos filhos do controlo atual do servidor têm alguma configuração de estado de visualização guardada.

(Herdado de Control)
Height

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

(Herdado de WebControl)
HorizontalAlign

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

(Herdado de Panel)
ID

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

(Herdado de Control)
IdSeparator

Faz com que o carácter seja usado para separar identificadores de controlo.

(Herdado de Control)
ImportedPartLabelText

Recebe ou define texto exibido após o utilizador importar um ficheiro de descrição para representar ou descrever o controlo importado dentro do catálogo de controlos importados.

IsChildControlStateCleared

Obtém um valor que indica se os controlos contidos neste controlo têm estado de controlo.

(Herdado de Control)
IsEnabled

Recebe um valor que indica se o controlo está ativado.

(Herdado de WebControl)
IsTrackingViewState

Recebe um valor que indica se o controlo do servidor está a guardar alterações ao estado de visualização.

(Herdado de Control)
IsViewStateEnabled

Recebe um valor que indica se o estado de visualização está ativado para este controlo.

(Herdado de Control)
LoadViewStateByID

Recebe um valor que indica se o controlo participa no carregamento do seu estado de visualização em ID vez de index.

(Herdado de Control)
NamingContainer

Obtém uma referência ao contentor de nomes do controlo do servidor, que cria um namespace único para diferenciar controlos de servidor com o mesmo ID valor de propriedade.

(Herdado de Control)
Page

Obtém uma referência à Page instância que contém o controlo do servidor.

(Herdado de Control)
Parent

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

(Herdado de Control)
PartImportErrorLabelText

Recebe ou define uma mensagem de erro que é exibida se ocorrer um erro durante o processo de importação.

RenderingCompatibility

Recebe um valor que especifica a versão 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 scroll num Panel controlo.

(Herdado de Panel)
Site

Obtém informação sobre o contentor que aloja o controlo atual quando renderizado numa superfície de design.

(Herdado de Control)
SkinID

Obtém ou fixa a pele para aplicar no controlo.

(Herdado de WebControl)
Style

Recebe uma coleção de atributos de texto que serão renderizados como um atributo de estilo na etiqueta externa do controlo do servidor Web.

(Herdado de WebControl)
SupportsDisabledAttribute

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

(Herdado de Panel)
TabIndex

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

(Herdado de WebControl)
TagKey

Obtém o HtmlTextWriterTag valor correspondente a este controlo do servidor Web. Esta propriedade é utilizada principalmente por promotores de controlo.

(Herdado de WebControl)
TagName

Recebe o nome da etiqueta de controlo. Esta propriedade é utilizada principalmente por promotores de controlo.

(Herdado de WebControl)
TemplateControl

Recebe ou define uma referência ao template que contém esse controlo.

(Herdado de Control)
TemplateSourceDirectory

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

(Herdado de Control)
Title

Recebe ou define o título que aparece na barra de título de um ImportCatalogPart controlo.

ToolTip

Obtém ou define o texto exibido quando o ponteiro do rato paira sobre o controlo do servidor Web.

(Herdado de WebControl)
UniqueID

Obtém o identificador único e hierarquicamente qualificado para o controlo do servidor.

(Herdado de Control)
UploadButtonText

Recebe ou define o texto para o Button controlo que inicia o carregamento de um ficheiro de descrição.

UploadHelpText

Obtém ou define o texto da mensagem que indica ao utilizador como carregar um ficheiro de descrição.

ValidateRequestMode

Recebe ou define um valor que indica se o controlo verifica a entrada do cliente do navegador para valores potencialmente perigosos.

(Herdado de Control)
ViewState

Obtém um dicionário de informação de estado que permite guardar e restaurar o estado de visualização de um controlo de servidor através de múltiplos pedidos para a mesma página.

(Herdado de Control)
ViewStateIgnoresCase

Obtém um valor que indica se o StateBag objeto é indistinto a maiúsculas e maiúsculas.

(Herdado de Control)
ViewStateMode

Obtém ou define o modo view-state deste controlo.

(Herdado de Control)
Visible

Recebe ou define um valor que indica se um controlo de servidor é renderizado como UI na página.

(Herdado de Control)
WebPartManager

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

(Herdado de CatalogPart)
Width

Obtém ou define a largura do controlo do servidor Web.

(Herdado de WebControl)
Wrap

Recebe ou define um valor que indica se o conteúdo se envolve dentro do painel.

(Herdado de Panel)
Zone

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

(Herdado de CatalogPart)

Métodos

Name Description
AddAttributesToRender(HtmlTextWriter)

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

(Herdado de Panel)
AddedControl(Control, Int32)

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

(Herdado de Control)
AddParsedSubObject(Object)

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

(Herdado de Control)
ApplyStyle(Style)

Copia quaisquer elementos não em branco do estilo especificado para o controlo Web, sobrescrevendo quaisquer elementos de estilo existentes do controlo. Este método é usado principalmente por desenvolvedores de controlo.

(Herdado de WebControl)
ApplyStyleSheetSkin(Page)

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

(Herdado de Control)
BeginRenderTracing(TextWriter, Object)

Inicia o rastreio em tempo de design dos dados de renderização.

(Herdado de Control)
BuildProfileTree(String, Boolean)

Recolhe informações sobre o controlo do servidor e entrega-as à Trace propriedade para serem exibidas quando o rastreamento for ativado para a página.

(Herdado de Control)
ClearCachedClientID()

Define o valor em ClientID cache para null.

(Herdado de Control)
ClearChildControlState()

Apaga a informação de estado de controlo dos controlos filhos do controlo do servidor.

(Herdado de Control)
ClearChildState()

Apaga a informação de view-state e control-state de todos os controlos filhos do servidor.

(Herdado de Control)
ClearChildViewState()

Elimina a informação de estado de visualização de todos os controlos filhos do controlo do servidor.

(Herdado de Control)
ClearEffectiveClientIDMode()

Define a ClientIDMode propriedade da instância de controlo atual e de qualquer controlo filho para Inherit.

(Herdado de Control)
CopyBaseAttributes(WebControl)

Copia as propriedades não encapsuladas pelo Style objeto do controlo do servidor Web especificado para o controlo do servidor Web de onde este método é chamado. Este método é utilizado principalmente por reveladores de controlo.

(Herdado de WebControl)
CreateChildControls()

Chamada pelo framework de páginas ASP.NET para notificar os controlos de servidor que utilizam implementação baseada em composição para criar quaisquer controlos filhos que contenham em preparação para publicação ou renderização.

(Herdado de Control)
CreateControlCollection()

Cria um novo ControlCollection objeto para armazenar os controlos filhos (tanto literais como de servidor) do controlo do servidor.

(Herdado de Control)
CreateControlStyle()

Cria um objeto de estilo que é usado internamente pelo Panel controlo para implementar todas as propriedades relacionadas com o estilo.

(Herdado de Panel)
DataBind()

Vincula uma fonte de dados ao controlo do servidor invocado e a todos os seus controlos filhos.

(Herdado de Part)
DataBind(Boolean)

Vincula uma fonte de dados ao controlo do servidor invocado e a todos os seus controlos filhos com uma opção para elevar o DataBinding evento.

(Herdado de Control)
DataBindChildren()

Vincula uma fonte de dados aos controlos filhos do controlo do servidor.

(Herdado de Control)
Dispose()

Permite que o controlo do servidor realize a limpeza final antes de ser libertado da memória.

(Herdado de Control)
EndRenderTracing(TextWriter, Object)

Termina o rastreio de tempo de design dos dados de renderização.

(Herdado de Control)
EnsureChildControls()

Determina se o controlo do servidor contém controlos filhos. Se não o fizer, cria controlos filhos.

(Herdado de Control)
EnsureID()

Cria um identificador para controlos 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, Int32)

Pesquisa no contentor de nomenclatura atual um controlo de servidor com o especificado id e um inteiro, especificados no pathOffset parâmetro, o que auxilia na pesquisa. Não deve sobrepor-se a esta versão do FindControl método.

(Herdado de Control)
FindControl(String)

Procura no contentor de nomenclatura atual um controlo de servidor com o parâmetro especificado id .

(Herdado de Control)
Focus()

Define o foco de entrada num controlo.

(Herdado de Control)
GetAvailableWebPartDescriptions()

Devolve uma coleção de descrições dos controlos disponíveis WebPart num catálogo.

GetDesignModeState()

Recupera o estado atual da zona mãe de um CatalogPart controlo.

(Herdado de CatalogPart)
GetHashCode()

Serve como função de hash predefinida.

(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 o URL que corresponde a um conjunto de parâmetros de rota e a um nome de rota.

(Herdado de Control)
GetRouteUrl(String, RouteValueDictionary)

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

(Herdado de Control)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetUniqueIDRelativeTo(Control)

Devolve a parte prefixada da UniqueID propriedade do controlo especificado.

(Herdado de Control)
GetWebPart(WebPartDescription)

Devolve uma referência a um WebPart controlo com base nos valores da descrição passados para o método.

HasControls()

Determina se o controlo do servidor contém algum controlo filho.

(Herdado de Control)
HasEvents()

Devolve um valor que indica se os eventos estão registados para o controlo ou para quaisquer controlos filhos.

(Herdado de Control)
IsLiteralContent()

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

(Herdado de Control)
LoadControlState(Object)

Restaura a informação do estado de controlo a partir de um pedido de página anterior que foi guardado pelo SaveControlState() método.

(Herdado de Control)
LoadViewState(Object)

Restaura a informação de estado de visualização de um pedido anterior que foi guardado com o SaveViewState() método.

(Herdado de WebControl)
MapPathSecure(String)

Recupera o caminho físico para o qual um caminho virtual, seja absoluto ou relativo, mapeia.

(Herdado de Control)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
MergeStyle(Style)

Copia quaisquer elementos não em branco do estilo especificado para o controlo Web, mas não sobrescreve quaisquer elementos de estilo existentes do controlo. Este método é utilizado principalmente por reveladores de controlo.

(Herdado de WebControl)
OnBubbleEvent(Object, EventArgs)

Determina se o evento para o controlo do servidor é passado para a hierarquia de controlo do servidor UI da página.

(Herdado de Control)
OnDataBinding(EventArgs)

Eleva o DataBinding evento.

(Herdado de Control)
OnInit(EventArgs)

Eleva o Init evento.

(Herdado de Control)
OnLoad(EventArgs)

Eleva o Load evento.

(Herdado de Control)
OnPreRender(EventArgs)

Eleva o PreRender evento.

(Herdado de CatalogPart)
OnUnload(EventArgs)

Eleva o Unload evento.

(Herdado de Control)
OpenFile(String)

Recebe um Stream usado para ler um ficheiro.

(Herdado de Control)
RaiseBubbleEvent(Object, EventArgs)

Atribui quaisquer fontes do evento e da sua informação ao pai do controlo.

(Herdado de Control)
RemovedControl(Control)

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

(Herdado de Control)
Render(HtmlTextWriter)

Renderiza o controlo para o escritor HTML especificado.

(Herdado de WebControl)
RenderBeginTag(HtmlTextWriter)

Renderiza a etiqueta de abertura HTML do Panel controlo ao escritor especificado.

(Herdado de Panel)
RenderChildren(HtmlTextWriter)

Exporta o conteúdo dos filhos de um controlo de servidor para um objeto fornecido HtmlTextWriter , que escreve o conteúdo a ser renderizado no cliente.

(Herdado de Control)
RenderContents(HtmlTextWriter)

Apresenta o conteúdo do controlo ao autor especificado. Este método é utilizado principalmente por reveladores de controlo.

(Herdado de WebControl)
RenderControl(HtmlTextWriter, ControlAdapter)

Fornece conteúdo de controlo do servidor para um objeto fornecido HtmlTextWriter usando um objeto fornecido ControlAdapter .

(Herdado de Control)
RenderControl(HtmlTextWriter)

Fornece conteúdo de controlo do servidor para um objeto fornecido HtmlTextWriter e armazena informação de rastreamento sobre o controlo se o rastreio estiver ativado.

(Herdado de Control)
RenderEndTag(HtmlTextWriter)

Renderiza a etiqueta HTML de fecho do Panel controlo no escritor especificado.

(Herdado de Panel)
ResolveAdapter()

Faz com que o adaptador de controlo seja responsável por renderizar o controlo especificado.

(Herdado de Control)
ResolveClientUrl(String)

Recebe um URL que pode ser usado pelo navegador.

(Herdado de Control)
ResolveUrl(String)

Converte uma URL numa que seja utilizável no cliente solicitante.

(Herdado de Control)
SaveControlState()

Guarda quaisquer alterações no estado de controlo do servidor que tenham ocorrido desde que a página foi publicada de volta no servidor.

(Herdado de Control)
SaveViewState()

Guarda qualquer estado que tenha sido modificado após o TrackViewState() método ter sido invocado.

(Herdado de WebControl)
SetDesignModeState(IDictionary)

Define dados em tempo de projeto para um controlo.

(Herdado de CatalogPart)
SetRenderMethodDelegate(RenderMethod)

Atribui um delegado handler de eventos para renderizar o controlo do servidor e o seu conteúdo no controlo pai.

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

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

(Herdado de Control)
SetTraceData(Object, Object)

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

(Herdado de Control)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
TrackViewState()

Faz com que o controlo acompanhe alterações ao estado de visualização para que possam ser armazenadas na propriedade do ViewState objeto.

(Herdado de WebControl)

evento

Name Description
DataBinding

Ocorre quando o controlo do servidor se liga a uma fonte de dados.

(Herdado de Control)
Disposed

Ocorre quando um controlo de servidor é libertado da memória, que é a última etapa do ciclo de vida do controlo do servidor quando uma página ASP.NET é solicitada.

(Herdado de Control)
Init

Ocorre quando o controlo do servidor é inicializado, que é o primeiro passo no seu ciclo de vida.

(Herdado de Control)
Load

Ocorre quando o controlo do servidor é carregado no Page objeto.

(Herdado de Control)
PreRender

Ocorre depois do carregamento do Control objeto, mas antes da renderização.

(Herdado de Control)
Unload

Ocorre quando o controlo do servidor é descarregado da memória.

(Herdado de Control)

Implementações de Interface Explícita

Name Description
IAttributeAccessor.GetAttribute(String)

Recebe um atributo do controlo Web com o nome especificado.

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

Define um atributo do controlo Web ao nome e valor especificados.

(Herdado de WebControl)
ICompositeControlDesignerAccessor.RecreateChildControls()

Permite ao desenvolvedor de um designer para um controlo de peça composta recriar os controlos filhos do controlo na superfície de design.

(Herdado de Part)
IControlBuilderAccessor.ControlBuilder

Para uma descrição deste elemento, veja ControlBuilder.

(Herdado de Control)
IControlDesignerAccessor.GetDesignModeState()

Para uma descrição deste elemento, veja GetDesignModeState().

(Herdado de Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Para uma descrição deste elemento, veja SetDesignModeState(IDictionary).

(Herdado de Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Para uma descrição deste elemento, veja SetOwnerControl(Control).

(Herdado de Control)
IControlDesignerAccessor.UserData

Para uma descrição deste elemento, veja UserData.

(Herdado de Control)
IDataBindingsAccessor.DataBindings

Para uma descrição deste elemento, veja DataBindings.

(Herdado de Control)
IDataBindingsAccessor.HasDataBindings

Para uma descrição deste elemento, veja HasDataBindings.

(Herdado de Control)
IExpressionsAccessor.Expressions

Para uma descrição deste elemento, veja Expressions.

(Herdado de Control)
IExpressionsAccessor.HasExpressions

Para uma descrição deste elemento, veja HasExpressions.

(Herdado de Control)
IParserAccessor.AddParsedSubObject(Object)

Para uma descrição deste elemento, veja AddParsedSubObject(Object).

(Herdado de Control)

Métodos da Extensão

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

Ativa o comportamento de Dados Dinâmicos para o controlo de dados especificado.

EnableDynamicData(INamingContainer, Type, Object)

Ativa o comportamento de Dados Dinâmicos para o controlo de dados especificado.

EnableDynamicData(INamingContainer, Type)

Ativa o comportamento de Dados Dinâmicos para o controlo de dados especificado.

FindDataSourceControl(Control)

Devolve a fonte de dados associada ao controlo de dados para o controlo especificado.

FindFieldTemplate(Control, String)

Devolve o modelo de campo para a coluna especificada no contentor de nomenclatura do controlo especificado.

FindMetaTable(Control)

Devolve o objeto metatable para o controlo de dados que contém.

GetDefaultValues(INamingContainer)

Obtém a recolha dos valores padrão para o controlo de dados especificado.

GetMetaTable(INamingContainer)

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

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

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

SetMetaTable(INamingContainer, MetaTable, Object)

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

SetMetaTable(INamingContainer, MetaTable)

Define os metadados da tabela para o controlo de dados especificado.

TryGetMetaTable(INamingContainer, MetaTable)

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

Aplica-se a

Ver também