ImportCatalogPart Classe

Definizione

Importa un file di descrizione per un controllo WebPart (o un altro controllo server ASP.NET usato come controllo WebPart), in modo che gli utenti possano aggiungere il controllo a una pagina Web con impostazioni predefinite. La classe non può essere ereditata.

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
Ereditarietà

Esempio

Nell'esempio di codice seguente viene illustrato come usare il ImportCatalogPart controllo dichiarativo e a livello di codice in una pagina Web. L'esempio include quattro parti:

  • Controllo utente che consente di modificare le modalità di visualizzazione in una pagina web part.

  • Pagina Web che contiene un CatalogZone controllo e un ImportCatalogPart controllo.

  • File di codice sorgente che contiene due controlli personalizzati WebPart .

  • Spiegazione del funzionamento dell'esempio quando si carica la pagina in un browser.

La prima parte di questo esempio di codice è il controllo utente che consente agli utenti di modificare le modalità di visualizzazione in una pagina Web. È consigliabile inserire il codice sorgente seguente in un file e denominarlo Displaymodemenucs.ascx o Displaymodemenuvb.ascx (a seconda della lingua in uso). Per informazioni dettagliate sulle modalità di visualizzazione e una descrizione del codice sorgente in questo controllo, vedere Procedura dettagliata: Modifica delle modalità di visualizzazione in una pagina web part.

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

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

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

    String browseModeName = WebPartManager.BrowseDisplayMode.Name;

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

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

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

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

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

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

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

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

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

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

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

  End Sub

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

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

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

  End Sub

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

La seconda parte dell'esempio di codice è la pagina Web. Nella parte superiore della pagina sono due register direttive, una per il controllo utente e una per il componente compilato che contiene i due controlli personalizzati WebPart . Si noti che la pagina ha un riferimento dichiarativo al ImportCatalogPart controllo, annidato all'interno della gerarchia appropriata di elementi dichiarativi. Si noti anche che diversi valori delle proprietà vengono assegnati in modo dichiarativo sull'elemento <asp:importcatalogpart> . Inoltre, il Button1_Click metodo aggiorna un numero di valori di proprietà nel ImportCatalogPart controllo.

Nel controllo della WebPartZone pagina vengono dichiarati i due controlli personalizzati WebPart . Il <aspSample:userinfowebpart> controllo ha un exportmode="all" attributo su di esso. Questo attributo è necessario per consentire agli utenti di esportare un file di descrizione per il controllo, che può quindi essere importato da altri utenti che desiderano importare il controllo usando il file di descrizione.

Nota

Per consentire agli utenti di un'applicazione Web part di esportare un file di descrizione per WebPart i controlli, è necessario abilitare anche la funzionalità di esportazione nell'applicazione Web aggiungendo un enableExport="true" attributo all'elemento <webParts> (figlio dell'elemento <system.web> ) nel file Web.config. L'esportazione è disabilitata per impostazione predefinita, quindi se non è ancora stata abilitata l'esportazione per l'applicazione, modificare il file Web.config e farlo ora.

<%@ page language="c#" %>
<%@ register TagPrefix="uc1" 
  TagName="DisplayModeMenuCS" 
  Src="DisplayModeMenuCS.ascx" %>
<%@ register tagprefix="aspSample" 
  Namespace="Samples.AspNet.CS.Controls" %>

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

<script runat="server">

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

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

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

<script runat="server">

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

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

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

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

La terza parte dell'esempio di codice è il codice sorgente per i due WebPart controlli. Si noti che alcune proprietà di questi controlli sono contrassegnate con l'attributo WebBrowsable . Ciò consente al controllo di generare dinamicamente l'interfaccia PropertyGridEditorPart utente per un utente di modificare tali proprietà quando i controlli sono in modalità di modifica. Le proprietà sono contrassegnate anche con un WebDisplayName attributo, per specificare il testo dell'etichetta visualizzata accanto a ogni controllo nell'interfaccia utente di modifica. Per eseguire l'esempio di codice, è necessario compilare questo codice sorgente. È possibile compilarlo in modo esplicito e inserire l'assembly risultante nella cartella Bin del sito Web o nella global assembly cache. In alternativa, è possibile inserire il codice sorgente nella cartella App_Code del sito, in cui verrà compilato dinamicamente in fase di esecuzione. Questo esempio di codice usa la compilazione dinamica. Per una procedura dettagliata che illustra entrambi i metodi di compilazione, vedere Procedura dettagliata: Sviluppo e uso di un controllo server Web personalizzato.

Il controllo personalizzato chiamato TextDisplayWebPart viene fatto riferimento nella pagina Web con un <aspSample:TextDisplayWebPart> elemento. L'altro controllo, denominato UserInfoWebPart, viene dichiarato anche nella pagina Web inizialmente, anche se verrà rimosso in seguito per illustrare la possibilità di importare un file di descrizione per un controllo.

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

Eseguire ora l'esempio di codice. Caricare la pagina Web in un browser. Il primo passaggio consiste nel modificare il UserInfoWebPart controllo. Usare il controllo elenco a discesa Modalità di visualizzazione e selezionare Modifica per passare alla pagina in modalità di modifica. Fare clic sul menu verbi del UserInfoWebPart controllo (la freccia verso il basso nella barra del titolo) e quindi fare clic su Modifica. Quando viene visualizzata l'interfaccia utente di modifica, diversi controlli di modifica vengono visualizzati sotto il UserInfoWebPart controllo che è possibile usare per modificare i relativi valori di campo. Modificare alcuni campi, fare clic su OK e quindi usare l'elenco a discesa Modalità visualizzazione per restituire la pagina in modalità di esplorazione.

Il secondo passaggio consiste nell'esportare un oggetto . File di descrizione WebPart per il UserInfoWebPart controllo. Fare clic sul menu verbi sul controllo personalizzato (rappresentato dalla freccia verso il basso nella barra del titolo) e fare clic su Esporta. Seguire le istruzioni per salvare un oggetto . File di descrizione WebPart per il controllo. Chiudere ora la pagina Web e modificare l'origine della pagina in un editor. Eliminare l'elemento dichiarazione di <aspSample:userinfowebpart> controllo, quindi salvare e chiudere il file. Questo passaggio consente di simulare un utente che non ha ancora il UserInfoWebPart controllo, in modo da poter importare il controllo nella pagina.

Caricare di nuovo la pagina Web in un browser. Il UserInfoWebPart controllo non dovrebbe essere visualizzato, perché è stato rimosso. Usare il controllo elenco a discesa Modalità visualizzazione e selezionare Catalogo per passare alla modalità catalogo. ImportCatalogPart Nel controllo fare clic sul pulsante Sfoglia e passare a . File WebPart creato, quindi fare clic sul pulsante Carica. Un riferimento al controllo deve essere visualizzato con una casella di controllo accanto. Selezionare la casella di controllo, quindi fare clic su Aggiungi per aggiungere il controllo alla pagina.

Mentre si è in questa visualizzazione della pagina, fare clic sul pulsante Update ImportCatalogPart nella parte inferiore della pagina per visualizzare l'effetto dell'aggiornamento a livello di codice di un numero di valori delle proprietà nel ImportCatalogPart controllo. Dopo aver fatto clic sul pulsante, osservare come vengono modificate le varie proprietà nell'interfaccia utente.

Infine, fare clic su Chiudi per uscire dalla modalità catalogo e restituire la pagina per la modalità di esplorazione. Il UserInfoWebPart controllo dovrebbe ora essere visualizzato nella pagina contenente i valori che aveva quando è stato esportato in precedenza.

Commenti

Il ImportCatalogPart controllo consente agli utenti di importare un file di descrizione che descrive le impostazioni in un WebPart controllo o un controllo server che un utente vuole aggiungere a una WebPartZoneBase zona.

Dopo che un utente importa un file di descrizione, il controllo a cui fa riferimento nel WebPart file viene visualizzato all'interno del ImportCatalogPart controllo e un utente può aggiungere il controllo alla pagina.

Il file di descrizione non è uguale al controllo stesso. Si tratta di un file XML che termina con un oggetto . Estensione WebPart e contiene coppie nome/valore, per lo più valori delle proprietà, che descrivono lo stato del controllo. Il file di descrizione viene creato in base a un formato XML specificato, come descritto nell'argomento Web part Control Description Files.

Come per il controllo a cui fa riferimento il file di descrizione, può essere compilato in un assembly oppure può essere un controllo utente definito in un file ascx. In entrambi i casi, il controllo a cui fa riferimento in un file di descrizione importato deve esistere nel server Web che ospita la pagina che tenta di importare il controllo. Il file di descrizione fa riferimento al nome del controllo e all'assembly (o al file) che contiene il controllo e il file di descrizione contiene impostazioni che influiscono sui valori delle proprietà del controllo, sull'aspetto e sul comportamento.

Il ImportCatalogPart controllo consente agli utenti di condividere le impostazioni sui controlli. Un controllo complesso può avere molte proprietà e impostazioni. Ad esempio, in un sito Intranet tipico all'interno di un'azienda di grandi dimensioni, un controllo personalizzato WebPart potrebbe contenere un numero di proprietà che contengono valori specifici dell'ambiente degli utenti, ad esempio le connessioni di database, le informazioni di reparto e così via. Il controllo può contenere anche una serie di proprietà che influiscono sull'aspetto. Un utente può personalizzare il controllo in un sito specifico e usarlo correttamente, esportare correttamente un file di descrizione per il controllo e quindi condividere il file di descrizione con altri utenti, che possono importare il file per aggiungere il controllo completamente configurato ad altri siti Intranet autorizzati a personalizzare. Purché il file di controllo utente o assembly compilato contenente il controllo esista nel server Web che ospita il sito, gli utenti possono aggiungere il controllo ad altri siti Web.

Il meccanismo per cui gli utenti importano un file di descrizione (e quindi il relativo controllo server associato) in una pagina Web è il ImportCatalogPart controllo, che uno sviluppatore di pagine deve aggiungere a una pagina Web. Quando un utente passa la pagina alla modalità di visualizzazione del catalogo, viene visualizzato il ImportCatalogPart controllo e l'utente può usare questo controllo per passare a . File di descrizione WebPart corrispondente al controllo server che desidera importare. Seguendo l'interfaccia utente e le istruzioni fornite dal ImportCatalogPart controllo, un utente è in grado di aggiungere il controllo server desiderato nella pagina Web, con l'aspetto e le proprietà completamente configurate come specificato nel file di descrizione importato.

Prima che sia possibile importare un file di descrizione di un WebPart controllo, un utente deve prima creare (esportare) il file in base a un controllo esistente WebPart . Un file di descrizione può essere esportato per un controllo se vengono soddisfatte le condizioni seguenti:

  • Il controllo ha proprietà contrassegnate con l'attributo Personalizable .

  • Il file Web.config ha il enableExport valore dell'attributo impostato su true sull'elemento <webParts> .

  • Uno sviluppatore imposta il valore della ExportMode proprietà sul controllo su un valore diverso dal valore predefinito di None, che impedisce l'esportazione. Se il valore della ExportMode proprietà è impostato su NonSensitiveData, qualsiasi proprietà contenente un parametro con un IsSensitivePersonalizable attributo non viene esportata quando un utente esporta un file di descrizione. Ciò consente agli sviluppatori di controllare di impedire l'esportazione di dati sensibili, ad esempio stringhe di connessione, in determinate situazioni.

Un utente può esportare un controllo abilitato per l'esportazione facendo clic sul verbo di esportazione visualizzato nel menu verbi del controllo e seguendo le istruzioni per salvare un oggetto . File di descrizione WebPart per il controllo. Altri utenti possono quindi importare questo file per configurare le proprie istanze del controllo.

La ImportCatalogPart classe contiene diverse proprietà. La BrowseHelpText proprietà contiene testo con istruzioni per gli utenti quando esplorano per individuare il file di descrizione. La ImportedPartLabelText proprietà contiene testo che funge da etichetta per il controllo importato come visualizzato all'interno del ImportCatalogPart controllo. Contiene PartImportErrorLabelText il testo visualizzato se si verifica un errore quando viene importata una descrizione del controllo. La Title proprietà esegue l'override della proprietà di base per assegnare un titolo predefinito per un ImportCatalogPart controllo se lo sviluppatore non assegna un titolo. La UploadButtonText proprietà contiene il testo per il pulsante che l'utente fa clic per caricare il file di descrizione e la UploadHelpText proprietà contiene le istruzioni per il processo di caricamento.

La ImportCatalogPart classe contiene anche diversi metodi univoci. Il GetAvailableWebPartDescriptions metodo recupera un oggetto per ogni controllo nel catalogo, che consente a un WebPartDescriptionImportCatalogPart controllo di visualizzare informazioni su ogni WebPart controllo server senza dover creare un'istanza di esso. Il GetWebPart metodo ottiene un'istanza di un determinato WebPart controllo, in base alla descrizione passata al metodo.

Esistono alcuni rischi intrinseci associati all'uso del ImportCatalogPart controllo. Un esempio è la possibilità di importare dati dannosi nell'applicazione Web tramite i file di descrizione usati per l'importazione. Se un utente ha inserito codice script dannoso come valore di una proprietà stringa nel file di descrizione, tale script potrebbe essere eseguito potenzialmente quando un utente importa il file di descrizione e aggiunge il controllo server di riferimento a una pagina Web. Per ridurre al minimo il rischio di importare file di descrizione con dati dannosi, i controlli server con proprietà con tipi di stringa devono sempre codificare i dati delle proprietà. Un altro rischio comporta l'importazione di tipi tramite file di descrizione (vedere Web part Control Description Files). Un utente malintenzionato potrebbe inviare richieste per caricare molti assembly in AppDomain, con conseguente utilizzo eccessivo di memoria.

Per evitare i rischi associati all'importazione, è possibile disabilitare completamente la funzionalità non usando la funzionalità di importazione o il ImportCatalogPart controllo . In alternativa, è possibile limitare gli utenti che hanno accesso al controllo. È possibile eseguire questa operazione a livello di codice usando la gestione dei ruoli. Vedere Gestione dell'autorizzazione tramite i ruoli. Ad esempio, quando la pagina viene caricata, è possibile verificare se un utente è in un determinato ruolo, ad esempio il ruolo di amministratore. Se l'utente è nel ruolo, è possibile aggiungere il ImportCatalogPart controllo a livello di codice alla pagina per l'utente. È anche possibile usare un approccio dichiarativo per limitare il set di utenti che possono usare il ImportCatalogPart controllo . All'interno della pagina Web che contiene un catalogo, è possibile inserire due CatalogZone controlli: uno per gli utenti che possono importare e uno per gli utenti che non possono eseguire l'importazione. La zona per gli utenti che possono importare conterrà il ImportCatalogPart controllo . La zona stessa può essere inserita all'interno di un LoginView controllo, che consente di limitare l'uso del controllo nella zona solo a utenti o ruoli autenticati specificati.

Costruttori

ImportCatalogPart()

Inizializza una nuova istanza della classe ImportCatalogPart.

Proprietà

AccessKey

Ottiene o imposta il tasto di scelta che consente di accedere rapidamente al controllo server Web.

(Ereditato da WebControl)
Adapter

Ottiene l'adattatore specifico del browser per il controllo.

(Ereditato da Control)
AppRelativeTemplateSourceDirectory

Ottiene o imposta la directory virtuale relativa all'applicazione dell'oggetto Page o UserControl contenente questo controllo.

(Ereditato da Control)
Attributes

Ottiene l'insieme di attributi arbitrari (solo per il rendering) che non corrispondono alle proprietà del controllo.

(Ereditato da WebControl)
BackColor

Ottiene o imposta il colore di sfondo del controllo server Web.

(Ereditato da WebControl)
BackImageUrl

Ottiene o imposta l'URL dell'immagine di sfondo per il controllo pannello.

(Ereditato da Panel)
BindingContainer

Ottiene il controllo contenente l'associazione dati del controllo corrente.

(Ereditato da Control)
BorderColor

Ottiene o imposta il colore del bordo del controllo Web.

(Ereditato da WebControl)
BorderStyle

Ottiene o imposta lo stile del bordo del controllo server Web.

(Ereditato da WebControl)
BorderWidth

Ottiene o imposta la larghezza del bordo del controllo server Web.

(Ereditato da WebControl)
BrowseHelpText

Ottiene o imposta un messaggio di testo che indica agli utenti di selezionare il percorso di un file di descrizione.

ChildControlsCreated

Ottiene un valore che indica se i controlli figli del controllo server sono stati creati.

(Ereditato da Control)
ChromeState

Ottiene o imposta un controllo di parte in stato normale o ridotto a icona.

(Ereditato da Part)
ChromeType

Ottiene o imposta il tipo di bordo che delimita un controllo Web part.

(Ereditato da Part)
ClientID

Ottiene l'ID di controllo per il markup HTML generato da ASP.NET.

(Ereditato da Control)
ClientIDMode

Ottiene o imposta l'algoritmo utilizzato per generare il valore della proprietà ClientID.

(Ereditato da Control)
ClientIDSeparator

Ottiene un carattere che rappresenta il separatore utilizzato nella proprietà ClientID.

(Ereditato da Control)
Context

Ottiene l'oggetto HttpContext associato al controllo server per la richiesta Web corrente.

(Ereditato da Control)
Controls

Ottiene un oggetto ControlCollection che contiene i controlli figlio per un controllo server specificato nella gerarchia dell'interfaccia utente.

(Ereditato da Part)
ControlStyle

Ottiene lo stile del controllo server Web. Questa proprietà viene usata principalmente dagli sviluppatori di controlli.

(Ereditato da WebControl)
ControlStyleCreated

Ottiene un valore che indica se è stato creato un oggetto Style per la proprietà ControlStyle. Questa proprietà viene utilizzata principalmente dagli sviluppatori di controlli.

(Ereditato da WebControl)
CssClass

Ottiene o imposta la classe CSS (Cascading Style Sheet) di cui viene eseguito il rendering tramite il controllo server Web sul client.

(Ereditato da WebControl)
DataItemContainer

Ottiene un riferimento al contenitore di denominazione se il contenitore di denominazione implementa IDataItemContainer.

(Ereditato da Control)
DataKeysContainer

Ottiene un riferimento al contenitore di denominazione se il contenitore di denominazione implementa IDataKeysControl.

(Ereditato da Control)
DefaultButton

Ottiene o imposta il pulsante dell'interfaccia utente da considerare come il pulsante predefinito che riceve lo stato attivo quando viene eseguito il rendering del form contenente il pulsante. Questa proprietà non è destinata a essere chiamata dal codice dello sviluppatore di pagine.

Description

Ottiene o imposta una breve frase che riepiloga la funzione del controllo di parte da utilizzare nelle descrizioni comando e nei cataloghi dei controlli di parte.

(Ereditato da Part)
DesignMode

Ottiene un valore che indica se un controllo viene utilizzato in un'area di progettazione.

(Ereditato da Control)
Direction

Ottiene o imposta la direzione nella quale visualizzare i controlli che includono testo in un controllo Panel.

(Ereditato da Panel)
DisplayTitle

Ottiene una stringa che contiene il titolo corrente effettivo di un controllo CatalogPart.

(Ereditato da CatalogPart)
Enabled

Ottiene o imposta un valore che indica se il controllo server Web è abilitato.

(Ereditato da WebControl)
EnableTheming

Ottiene o imposta un valore che indica se al controllo vengono applicati i temi.

(Ereditato da WebControl)
EnableViewState

Ottiene o imposta un valore che indica se lo stato di visualizzazione del controllo server deve essere persistente e lo stato di visualizzazione dei controlli figlio contenuti, per il client richiedente.

(Ereditato da Control)
Events

Ottiene un elenco dei delegati del gestore eventi per il controllo. Questa proprietà è di sola lettura.

(Ereditato da Control)
Font

Ottiene le proprietà del carattere associate al controllo server Web.

(Ereditato da WebControl)
ForeColor

Ottiene o imposta il colore di primo piano, in genere il colore del testo, del controllo server Web.

(Ereditato da WebControl)
GroupingText

Ottiene o imposta la didascalia del gruppo di controlli contenuto nel controllo pannello.

(Ereditato da Panel)
HasAttributes

Ottiene un valore che indica se sono impostati attributi per il controllo.

(Ereditato da WebControl)
HasChildViewState

Ottiene un valore che indica se per i controlli figlio del controllo server corrente esistono impostazioni dello stato di visualizzazione salvate.

(Ereditato da Control)
Height

Ottiene o imposta l'altezza del controllo server Web.

(Ereditato da WebControl)
HorizontalAlign

Ottiene o imposta l'allineamento orizzontale del contenuto all'interno del pannello.

(Ereditato da Panel)
ID

Ottiene o imposta l'identificatore a livello di codice assegnato al controllo server.

(Ereditato da Control)
IdSeparator

Ottiene il carattere utilizzato per separare gli identificatori di controllo.

(Ereditato da Control)
ImportedPartLabelText

Ottiene o imposta il testo che viene visualizzato in seguito all'importazione di un file di descrizione per rappresentare o descrivere il controllo importato nell'apposito catalogo.

IsChildControlStateCleared

Ottiene un valore che indica se i controlli contenuti in questo controllo dispongono di informazioni sullo stato del controllo.

(Ereditato da Control)
IsEnabled

Ottiene un valore che indica se il controllo è abilitato.

(Ereditato da WebControl)
IsTrackingViewState

Ottiene un valore che indica se il controllo server salva le modifiche allo stato di visualizzazione.

(Ereditato da Control)
IsViewStateEnabled

Ottiene un valore che indica se lo stato di visualizzazione è attivato per il controllo corrente.

(Ereditato da Control)
LoadViewStateByID

Ottiene un valore che indica se il controllo prende parte al caricamento del proprio stato di visualizzazione tramite ID anziché tramite l'indice.

(Ereditato da Control)
NamingContainer

Ottiene un riferimento al contenitore dei nomi del controllo server, che crea uno spazio dei nomi univoco per distinguere i controlli server che hanno lo stesso valore della proprietà ID.

(Ereditato da Control)
Page

Ottiene un riferimento all'istanza Page che contiene il controllo server.

(Ereditato da Control)
Parent

Ottiene un riferimento al controllo padre del controllo server nella gerarchia dei controlli della pagina.

(Ereditato da Control)
PartImportErrorLabelText

Ottiene o imposta un messaggio di errore che viene visualizzato se si verifica un errore durante il processo di importazione.

RenderingCompatibility

Ottiene un valore che specifica la versione di ASP.NET con cui sarà compatibile il codice HTML di cui è stato eseguito il rendering.

(Ereditato da Control)
ScrollBars

Ottiene o imposta la visibilità e la posizione delle barre di scorrimento in un controllo Panel.

(Ereditato da Panel)
Site

Ottiene informazioni sul contenitore del controllo corrente quando viene eseguito il rendering in un'area di progettazione.

(Ereditato da Control)
SkinID

Ottiene o imposta l'interfaccia personalizzata da applicare al controllo.

(Ereditato da WebControl)
Style

Ottiene un insieme di attributi di testo di cui verrà eseguito il rendering sotto forma di attributo di stile nel tag esterno del controllo server Web.

(Ereditato da WebControl)
SupportsDisabledAttribute

Ottiene un valore che indica se il controllo deve impostare l'attributo disabled dell'elemento HTML di cui è stato eseguito il rendering su "disabilitato" quando la proprietà IsEnabled del controllo è false.

(Ereditato da Panel)
TabIndex

Ottiene o imposta l'indice di tabulazione del controllo server Web.

(Ereditato da WebControl)
TagKey

Ottiene il valore HtmlTextWriterTag corrispondente al controllo server Web. Questa proprietà viene usata principalmente dagli sviluppatori di controlli.

(Ereditato da WebControl)
TagName

Ottiene il nome del tag del controllo. Questa proprietà viene usata principalmente dagli sviluppatori di controlli.

(Ereditato da WebControl)
TemplateControl

Ottiene o imposta un riferimento al modello che contiene il controllo.

(Ereditato da Control)
TemplateSourceDirectory

Ottiene la directory virtuale dell'oggetto Page o dell'oggetto UserControl che contiene il controllo server corrente.

(Ereditato da Control)
Title

Ottiene o imposta il titolo visualizzato sulla barra del titolo di un controllo ImportCatalogPart.

ToolTip

Ottiene o imposta il testo visualizzato quando il puntatore del mouse viene posizionato sul controllo server Web.

(Ereditato da WebControl)
UniqueID

Ottiene l'identificatore univoco qualificato gerarchicamente per il controllo server.

(Ereditato da Control)
UploadButtonText

Ottiene o imposta il testo per il controllo Button che avvia il caricamento di un file di descrizione.

UploadHelpText

Ottiene o imposta il testo del messaggio che comunica all'utente come caricare un file di descrizione.

ValidateRequestMode

Ottiene o imposta un valore che indica se il controllo verifica la presenza di valori potenzialmente pericolosi nell'input proveniente dal browser.

(Ereditato da Control)
ViewState

Ottiene un dizionario di informazioni sullo stato che permette di salvare e ripristinare lo stato di visualizzazione di un controllo server attraverso più richieste per la stessa pagina.

(Ereditato da Control)
ViewStateIgnoresCase

Ottiene un valore che indica se l'oggetto StateBag non effettua la distinzione tra maiuscole e minuscole.

(Ereditato da Control)
ViewStateMode

Ottiene o imposta la modalità dello stato, visualizzazione di questo controllo.

(Ereditato da Control)
Visible

Ottiene o imposta un valore che indica se viene eseguito il rendering di un controllo server come interfaccia utente nella pagina.

(Ereditato da Control)
WebPartManager

Ottiene un riferimento all'istanza corrente della classe WebPartManager.

(Ereditato da CatalogPart)
Width

Ottiene o imposta la larghezza del controllo server Web.

(Ereditato da WebControl)
Wrap

Ottiene o imposta un valore che indica se il contenuto va a capo nel pannello.

(Ereditato da Panel)
Zone

Ottiene un riferimento alla zona CatalogZoneBase che contiene un controllo CatalogPart.

(Ereditato da CatalogPart)

Metodi

AddAttributesToRender(HtmlTextWriter)

Aggiunge all'elenco degli attributi di cui eseguire il rendering informazioni sull'immagine di sfondo, l'allineamento, il ritorno a capo e la direzione.

(Ereditato da Panel)
AddedControl(Control, Int32)

Chiamato dopo che un controllo figlio viene aggiunto alla raccolta Controls dell'oggetto Control.

(Ereditato da Control)
AddParsedSubObject(Object)

Notifica al controllo server che un elemento, XML o HTML, è stato analizzato e aggiunge l'elemento all'oggetto ControlCollection del controllo server.

(Ereditato da Control)
ApplyStyle(Style)

Copia tutti gli elementi non vuoti dello stile specificato nel controllo Web, sovrascrivendo eventuali elementi di stile del controllo. Il metodo viene utilizzato principalmente dagli sviluppatori di controlli.

(Ereditato da WebControl)
ApplyStyleSheetSkin(Page)

Applica al controllo le proprietà di stile definite nel foglio di stile della pagina.

(Ereditato da Control)
BeginRenderTracing(TextWriter, Object)

Inizia la traccia in fase di progettazione dei dati di rendering.

(Ereditato da Control)
BuildProfileTree(String, Boolean)

Raccoglie informazioni sul controllo server e le recapita alla proprietà Trace in modo che vengano visualizzate quando è attivata la tracciatura per la pagina.

(Ereditato da Control)
ClearCachedClientID()

Imposta il valore memorizzato nella cache ClientID su null.

(Ereditato da Control)
ClearChildControlState()

Elimina le informazioni sullo stato del controllo per i controlli figlio del controllo server.

(Ereditato da Control)
ClearChildState()

Elimina le informazioni sullo stato di visualizzazione e sullo stato del controllo per tutti i controlli figlio del controllo server.

(Ereditato da Control)
ClearChildViewState()

Elimina le informazioni sullo stato di visualizzazione per tutti i controlli figlio del controllo server.

(Ereditato da Control)
ClearEffectiveClientIDMode()

Imposta la proprietà ClientIDMode dell'istanza del controllo corrente e di tutti i controlli figlio su Inherit.

(Ereditato da Control)
CopyBaseAttributes(WebControl)

Copia le proprietà non incapsulate dall'oggetto Style dal controllo server Web specificato al controllo server Web dal quale è stato chiamato il metodo. Questo metodo viene utilizzato principalmente dagli sviluppatori di controlli.

(Ereditato da WebControl)
CreateChildControls()

Viene chiamato dal framework della pagina ASP.NET per notificare ai controlli server che usano un'implementazione basata sulla composizione di creare gli eventuali controlli figlio in essi contenuti in preparazione per il postback o il rendering.

(Ereditato da Control)
CreateControlCollection()

Crea un nuovo oggetto ControlCollection per contenere i controlli figlio (valore letterale e server) del controllo del server.

(Ereditato da Control)
CreateControlStyle()

Crea un oggetto stile usato internamente dal controllo Panel per implementare tutte le proprietà correlate allo stile.

(Ereditato da Panel)
DataBind()

Associa un'origine dati al controllo server richiamato e a tutti i controlli figlio.

(Ereditato da Part)
DataBind(Boolean)

Associa un'origine dati al controllo server chiamato e ai relativi controlli figlio con un'opzione per generare l'evento DataBinding.

(Ereditato da Control)
DataBindChildren()

Associa un'origine dati al controllo server e ai relativi controlli figlio.

(Ereditato da Control)
Dispose()

Abilita un controllo server alla pulizia finale prima che venga rilasciato dalla memoria.

(Ereditato da Control)
EndRenderTracing(TextWriter, Object)

Termina la traccia in fase di progettazione dei dati di rendering.

(Ereditato da Control)
EnsureChildControls()

Determina se il controllo server contiene controlli figlio. In caso contrario, li crea.

(Ereditato da Control)
EnsureID()

Crea un identificatore per i controlli a cui non è assegnato alcun identificatore.

(Ereditato da Control)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
FindControl(String)

Cerca un controllo server nel contenitore dei nomi corrente con il parametro id specificato.

(Ereditato da Control)
FindControl(String, Int32)

Cerca nel contenitore di denominazione corrente un controllo server con il parametro id indicato e un intero, specificato nel parametro pathOffset, che agevola la ricerca. Non eseguire l'override di questa versione del metodo FindControl.

(Ereditato da Control)
Focus()

Imposta lo stato attivo per l'input su un controllo.

(Ereditato da Control)
GetAvailableWebPartDescriptions()

Restituisce un insieme di descrizioni dei controlli WebPart disponibili in un catalogo.

GetDesignModeState()

Recupera lo stato corrente della zona padre di un controllo CatalogPart.

(Ereditato da CatalogPart)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetRouteUrl(Object)

Ottiene l'URL corrispondente a un set di parametri di route.

(Ereditato da Control)
GetRouteUrl(RouteValueDictionary)

Ottiene l'URL corrispondente a un set di parametri di route.

(Ereditato da Control)
GetRouteUrl(String, Object)

Ottiene l'URL che corrisponde a un set di parametri di route e a un nome della route.

(Ereditato da Control)
GetRouteUrl(String, RouteValueDictionary)

Ottiene l'URL che corrisponde a un set di parametri di route e a un nome della route.

(Ereditato da Control)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
GetUniqueIDRelativeTo(Control)

Restituisce la parte con prefisso della proprietà UniqueID del controllo specificato.

(Ereditato da Control)
GetWebPart(WebPartDescription)

Restituisce un riferimento a un controllo WebPart basato sui valori della descrizione passata nel metodo.

HasControls()

Determina se il controllo server contiene controlli figlio.

(Ereditato da Control)
HasEvents()

Restituisce un valore che indica se gli eventi vengono registrati per il controllo o eventuali controlli figlio.

(Ereditato da Control)
IsLiteralContent()

Determina se il controllo server conserva solo il contenuto literal.

(Ereditato da Control)
LoadControlState(Object)

Ripristina le informazioni sullo stato del controllo da una richiesta di pagina precedente salvata dal metodo SaveControlState().

(Ereditato da Control)
LoadViewState(Object)

Ripristina informazioni sullo stato della visualizzazione da una richiesta precedente salvata con il metodo SaveViewState().

(Ereditato da WebControl)
MapPathSecure(String)

Recupera il percorso fisico al quale è associato un percorso virtuale, assoluto o relativo.

(Ereditato da Control)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
MergeStyle(Style)

Copia tutti gli elementi non vuoti dello stile specificato nel controllo Web, ma non sovrascrive eventuali elementi di stile del controllo. Questo metodo viene utilizzato principalmente dagli sviluppatori di controlli.

(Ereditato da WebControl)
OnBubbleEvent(Object, EventArgs)

Determina se l'evento per il controllo server viene passato a un livello superiore nella gerarchia dei controlli server dell'interfaccia utente per la pagina.

(Ereditato da Control)
OnDataBinding(EventArgs)

Genera l'evento DataBinding.

(Ereditato da Control)
OnInit(EventArgs)

Genera l'evento Init.

(Ereditato da Control)
OnLoad(EventArgs)

Genera l'evento Load.

(Ereditato da Control)
OnPreRender(EventArgs)

Genera l'evento PreRender.

(Ereditato da CatalogPart)
OnUnload(EventArgs)

Genera l'evento Unload.

(Ereditato da Control)
OpenFile(String)

Ottiene un oggetto Stream utilizzato per leggere un file.

(Ereditato da Control)
RaiseBubbleEvent(Object, EventArgs)

Assegna eventuali origini dell'evento e relative informazioni al controllo padre.

(Ereditato da Control)
RemovedControl(Control)

Chiamato dopo che un controllo figlio viene rimosso dalla raccolta Controls dell'oggetto Control.

(Ereditato da Control)
Render(HtmlTextWriter)

Esegue il rendering del controllo nel writer HTML specificato.

(Ereditato da WebControl)
RenderBeginTag(HtmlTextWriter)

Esegue il rendering del tag HTML di apertura del controllo Panel nel writer specificato.

(Ereditato da Panel)
RenderChildren(HtmlTextWriter)

Restituisce il contenuto degli elementi figlio di un controllo server a un oggetto HtmlTextWriter specificato, che scrive il contenuto di cui eseguire il rendering nel client.

(Ereditato da Control)
RenderContents(HtmlTextWriter)

Esegue il rendering del contenuto del controllo nel writer specificato. Questo metodo viene utilizzato principalmente dagli sviluppatori di controlli.

(Ereditato da WebControl)
RenderControl(HtmlTextWriter)

Restituisce il contenuto del controllo server a un oggetto HtmlTextWriter specificato e archivia le informazioni di traccia relative al controllo se la funzionalità di traccia è abilitata.

(Ereditato da Control)
RenderControl(HtmlTextWriter, ControlAdapter)

Restituisce il contenuto del controllo server a un oggetto HtmlTextWriter specificato utilizzando un oggetto ControlAdapter specificato.

(Ereditato da Control)
RenderEndTag(HtmlTextWriter)

Esegue il rendering del tag HTML di chiusura del controllo Panel nel writer specificato.

(Ereditato da Panel)
ResolveAdapter()

Ottiene l'adattatore del controllo responsabile del rendering del controllo specificato.

(Ereditato da Control)
ResolveClientUrl(String)

Ottiene un URL che può essere utilizzato dal browser.

(Ereditato da Control)
ResolveUrl(String)

Converte un URL in un formato utilizzabile dal client richiedente.

(Ereditato da Control)
SaveControlState()

Salva tutte le modifiche dello stato di un controllo server apportate dopo il postback della pagina nel server.

(Ereditato da Control)
SaveViewState()

Salva qualsiasi stato modificato dopo la chiamata del metodo TrackViewState().

(Ereditato da WebControl)
SetDesignModeState(IDictionary)

Imposta i dati della fase di progettazione per un controllo.

(Ereditato da CatalogPart)
SetRenderMethodDelegate(RenderMethod)

Assegna un delegato del gestore eventi per eseguire il rendering del controllo server e del relativo contenuto nel controllo padre.

(Ereditato da Control)
SetTraceData(Object, Object)

Imposta i dati di traccia per la traccia durante la fase di progettazione dei dati di rendering, utilizzando la chiave dei dati di traccia e il valore dei dati di traccia.

(Ereditato da Control)
SetTraceData(Object, Object, Object)

Imposta i dati di traccia per la traccia durante la fase di progettazione dei dati di rendering, utilizzando l'oggetto tracciato, la chiave dei dati di traccia e il valore dei dati di traccia.

(Ereditato da Control)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
TrackViewState()

Indica al controllo di tenere traccia delle modifiche apportate allo proprio stato di visualizzazione in modo che tali modifiche possano essere archiviate nella proprietà ViewState dell'oggetto.

(Ereditato da WebControl)

Eventi

DataBinding

Viene generato quando il controllo server viene associato a un'origine dati.

(Ereditato da Control)
Disposed

Si verifica quando un controllo server viene rilasciato dalla memoria, ossia nell'ultima fase della durata di un controllo server quando viene richiesta una pagina ASP.NET.

(Ereditato da Control)
Init

Viene generato quando il controllo server viene inizializzato, ovvero nella prima fase della sua durata.

(Ereditato da Control)
Load

Viene generato quando il controllo server è caricato nell'oggetto Page.

(Ereditato da Control)
PreRender

Si verifica dopo il caricamento dell'oggetto Control ma prima del rendering.

(Ereditato da Control)
Unload

Viene generato quando il controllo server viene scaricato dalla memoria.

(Ereditato da Control)

Implementazioni dell'interfaccia esplicita

IAttributeAccessor.GetAttribute(String)

Ottiene un attributo del controllo Web con il nome specificato.

(Ereditato da WebControl)
IAttributeAccessor.SetAttribute(String, String)

Imposta un attributo del controllo Web sul nome e il valore specificati.

(Ereditato da WebControl)
ICompositeControlDesignerAccessor.RecreateChildControls()

Consente allo sviluppatore di una finestra di progettazione per un controllo di parte composito di creare nuovamente i controlli figlio sull'area di progettazione.

(Ereditato da Part)
IControlBuilderAccessor.ControlBuilder

Per una descrizione di questo membro, vedere ControlBuilder.

(Ereditato da Control)
IControlDesignerAccessor.GetDesignModeState()

Per una descrizione di questo membro, vedere GetDesignModeState().

(Ereditato da Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Per una descrizione di questo membro, vedere SetDesignModeState(IDictionary).

(Ereditato da Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Per una descrizione di questo membro, vedere SetOwnerControl(Control).

(Ereditato da Control)
IControlDesignerAccessor.UserData

Per una descrizione di questo membro, vedere UserData.

(Ereditato da Control)
IDataBindingsAccessor.DataBindings

Per una descrizione di questo membro, vedere DataBindings.

(Ereditato da Control)
IDataBindingsAccessor.HasDataBindings

Per una descrizione di questo membro, vedere HasDataBindings.

(Ereditato da Control)
IExpressionsAccessor.Expressions

Per una descrizione di questo membro, vedere Expressions.

(Ereditato da Control)
IExpressionsAccessor.HasExpressions

Per una descrizione di questo membro, vedere HasExpressions.

(Ereditato da Control)
IParserAccessor.AddParsedSubObject(Object)

Per una descrizione di questo membro, vedere AddParsedSubObject(Object).

(Ereditato da Control)

Metodi di estensione

FindDataSourceControl(Control)

Restituisce l'origine dati associata al controllo dati per il controllo specificato.

FindFieldTemplate(Control, String)

Restituisce il modello di campo per la colonna specificata nel contenitore di denominazione del controllo specificato.

FindMetaTable(Control)

Restituisce l'oggetto metatabella per il controllo contenitore dei dati.

GetDefaultValues(INamingContainer)

Ottiene l'insieme di valori predefiniti per il controllo dei dati specificato.

GetMetaTable(INamingContainer)

Ottiene i metadati della tabella per il controllo dei dati specificato.

SetMetaTable(INamingContainer, MetaTable)

Imposta i metadati della tabella per il controllo dei dati specificato.

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

Imposta il mapping dei valori predefiniti e dei metadati della tabella per il controllo dei dati specificato.

SetMetaTable(INamingContainer, MetaTable, Object)

Imposta il mapping dei valori predefiniti e dei metadati della tabella per il controllo dei dati specificato.

TryGetMetaTable(INamingContainer, MetaTable)

Determina se sono disponibili i metadati della tabella.

EnableDynamicData(INamingContainer, Type)

Abilita il comportamento dati dinamici per il controllo dei dati specificato.

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

Abilita il comportamento dati dinamici per il controllo dei dati specificato.

EnableDynamicData(INamingContainer, Type, Object)

Abilita il comportamento dati dinamici per il controllo dei dati specificato.

Si applica a

Vedi anche