ImportCatalogPart Classe

Définition

Importe un fichier de description pour un contrôle WebPart (ou autre contrôle serveur ASP.NET utilisé comme contrôle WebPart), de sorte que les utilisateurs peuvent ajouter le contrôle à une page web avec des paramètres prédéfinis. Cette classe ne peut pas être héritée.

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
Héritage

Exemples

L’exemple de code suivant montre comment utiliser le ImportCatalogPart contrôle de manière déclarative et programmatique sur une page Web. L’exemple comporte quatre parties :

  • Contrôle utilisateur qui vous permet de modifier les modes d’affichage sur une page de composants WebPart.

  • Page Web qui contient un CatalogZone contrôle et un ImportCatalogPart contrôle.

  • Fichier de code source qui contient deux contrôles personnalisés WebPart .

  • Explication du fonctionnement de l’exemple lorsque vous chargez la page dans un navigateur.

La première partie de cet exemple de code est le contrôle utilisateur qui permet aux utilisateurs de modifier les modes d’affichage sur une page Web. Vous devez placer le code source suivant dans un fichier et le nommer Displaymodemenucs.ascx ou Displaymodemenuvb.ascx (selon la langue que vous utilisez). Pour plus d’informations sur les modes d’affichage et une description du code source dans ce contrôle, consultez Procédure pas à pas : modification des modes d’affichage sur une page de composants WebPart.

<%@ 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 deuxième partie de l’exemple de code est la page Web. En haut de la page se trouvent deux register directives, l’une pour le contrôle utilisateur et l’autre pour le composant compilé qui contient les deux contrôles personnalisés WebPart . Notez que la page a une référence déclarative au ImportCatalogPart contrôle, imbriquée dans la hiérarchie appropriée d’éléments déclaratifs. Notez également que plusieurs valeurs de propriété sont affectées de manière déclarative sur l’élément <asp:importcatalogpart> . En outre, la Button1_Click méthode met à jour un certain nombre de valeurs de propriété sur le ImportCatalogPart contrôle .

Dans le contrôle de la WebPartZone page, les deux contrôles personnalisés WebPart sont déclarés. Un attribut est exportmode="all" associé au <aspSample:userinfowebpart> contrôle. Cet attribut est requis pour permettre aux utilisateurs d’exporter un fichier de description pour le contrôle, qui peut ensuite être importé par d’autres utilisateurs qui souhaitent importer le contrôle à l’aide du fichier de description.

Notes

Pour permettre aux utilisateurs d’une application WebPart d’exporter un fichier de description pour WebPart les contrôles, vous devez également activer la fonctionnalité d’exportation dans l’application web en ajoutant un enableExport="true" attribut à l’élément <webParts> (qui est un enfant de l’élément <system.web> ) dans le fichier Web.config. L’exportation est désactivée par défaut. Par conséquent, si vous n’avez pas encore activé l’exportation pour votre application, modifiez le fichier Web.config et effectuez-le maintenant.

<%@ 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 troisième partie de l’exemple de code est le code source des deux WebPart contrôles. Notez que certaines propriétés de ces contrôles sont marquées avec l’attribut WebBrowsable . Cela permet au PropertyGridEditorPart contrôle de générer dynamiquement l’interface utilisateur pour qu’un utilisateur modifie ces propriétés lorsque les contrôles sont en mode édition. Les propriétés sont également marquées avec un WebDisplayName attribut, pour spécifier le texte de l’étiquette qui apparaît en regard de chaque contrôle dans l’interface utilisateur d’édition. Pour que l’exemple de code s’exécute, vous devez compiler ce code source. Vous pouvez le compiler explicitement et placer l’assembly résultant dans le dossier Bin de votre site web ou dans le Global Assembly Cache. Vous pouvez également placer le code source dans le dossier App_Code de votre site, où il sera compilé dynamiquement au moment de l’exécution. Cet exemple de code utilise la compilation dynamique. Pour obtenir une procédure pas à pas qui illustre les deux méthodes de compilation, consultez Procédure pas à pas : développement et utilisation d’un contrôle serveur Web personnalisé.

Le contrôle personnalisé appelé TextDisplayWebPart est référencé sur la page Web avec un <aspSample:TextDisplayWebPart> élément . L’autre contrôle, appelé UserInfoWebPart, est également déclaré sur la page Web initialement, mais vous le supprimerez ultérieurement pour illustrer la possibilité d’importer un fichier de description pour un contrôle.

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

Exécutez maintenant l’exemple de code. Chargez la page Web dans un navigateur. La première étape consiste à modifier le UserInfoWebPart contrôle. Utilisez le contrôle de liste déroulante Mode d’affichage et sélectionnez Modifier pour basculer la page en mode édition. Cliquez sur le menu verbes du UserInfoWebPart contrôle (flèche vers le bas dans la barre de titre), puis cliquez sur Modifier. Lorsque l’interface utilisateur de modification s’affiche, plusieurs contrôles d’édition s’affichent sous le UserInfoWebPart contrôle que vous pouvez utiliser pour modifier ses valeurs de champ. Modifiez certains champs, cliquez sur OK, puis utilisez la liste déroulante Mode d’affichage pour renvoyer la page en mode navigation.

La deuxième étape consiste à exporter un . Fichier de description webPart pour le UserInfoWebPart contrôle. Cliquez sur le menu verbes du contrôle personnalisé (représenté par la flèche vers le bas dans la barre de titre), puis cliquez sur Exporter. Suivez les instructions pour enregistrer un . Fichier de description webPart pour le contrôle. Fermez maintenant la page Web et modifiez la source de la page dans un éditeur. Supprimez l’élément <aspSample:userinfowebpart> de déclaration de contrôle, puis enregistrez et fermez le fichier. (Vous effectuez cette étape pour simuler un utilisateur qui n’a pas encore le UserInfoWebPart contrôle, afin de pouvoir importer le contrôle dans la page).

Chargez à nouveau la page Web dans un navigateur. Le UserInfoWebPart contrôle ne doit pas apparaître, car vous l’avez supprimé. Utilisez le contrôle de liste déroulante Mode d’affichage et sélectionnez Catalogue pour basculer la page en mode catalogue. Dans le ImportCatalogPart contrôle, cliquez sur le bouton Parcourir , puis accédez à . Fichier WebPart que vous avez créé, puis cliquez sur le bouton Charger . Une référence au contrôle doit s’afficher avec une zone de case activée en regard. Sélectionnez la zone case activée, puis cliquez sur Ajouter pour ajouter le contrôle à la page.

Lorsque vous êtes dans cette vue de la page, cliquez sur le bouton Mettre à jour ImportCatalogPart en bas de la page pour voir l’effet de la mise à jour par programmation d’un certain nombre de valeurs de propriété sur le ImportCatalogPart contrôle. Après avoir cliqué sur le bouton, observez comment les différentes propriétés sont modifiées dans l’interface utilisateur.

Enfin, cliquez sur Fermer pour quitter le mode catalogue et renvoyer la page en mode de navigation. Le UserInfoWebPart contrôle doit maintenant apparaître dans la page, contenant les valeurs qu’il avait lorsque vous l’avez exporté précédemment.

Remarques

Le ImportCatalogPart contrôle permet aux utilisateurs d’importer un fichier de description qui décrit les paramètres d’un contrôle ou d’un WebPart contrôle serveur qu’un utilisateur souhaite ajouter à une WebPartZoneBase zone.

Une fois qu’un utilisateur a importé un fichier de description, le WebPart contrôle référencé dans le fichier s’affiche dans le ImportCatalogPart contrôle et un utilisateur peut ajouter le contrôle à la page.

Le fichier de description n’est pas identique au contrôle lui-même. Il s’agit d’un fichier XML qui se termine par un . Extension WebPart et contient des paires nom/valeur, principalement des valeurs de propriété, qui décrivent l’état du contrôle. Le fichier de description est créé selon un format XML spécifié, comme décrit dans la rubrique Fichiers de description du contrôle de composants WebPart.

Quant au contrôle auquel le fichier de description fait référence, il peut être compilé dans un assembly ou il peut s’agir d’un contrôle utilisateur défini dans un fichier .ascx. Dans les deux cas, le contrôle référencé dans un fichier de description importé doit exister sur le serveur Web qui héberge la page qui tente d’importer le contrôle. Le fichier de description fait référence au nom du contrôle et à l’assembly (ou fichier) qui contient le contrôle, et le fichier de description contient des paramètres qui affectent les valeurs, l’apparence et le comportement des propriétés du contrôle.

Le ImportCatalogPart contrôle permet aux utilisateurs de partager des paramètres sur des contrôles. Un contrôle complexe peut avoir de nombreuses propriétés et paramètres. Par exemple, dans un site intranet classique au sein d’une grande entreprise, un contrôle personnalisé WebPart peut contenir un certain nombre de propriétés qui contiennent des valeurs spécifiques à l’environnement des utilisateurs, telles que leur connexions aux bases de données, des informations de service, etc. Le contrôle peut également contenir un certain nombre de propriétés qui affectent son apparence. Un utilisateur peut personnaliser le contrôle sur un site particulier et le faire fonctionner correctement, exporter un fichier de description pour le contrôle, puis partager le fichier de description avec d’autres utilisateurs, qui peuvent importer le fichier pour ajouter le contrôle entièrement configuré à d’autres sites intranet qu’ils sont autorisés à personnaliser. Tant que l’assembly compilé ou le fichier de contrôle utilisateur contenant le contrôle existe sur le serveur Web qui héberge leur site, les utilisateurs peuvent ajouter le contrôle à d’autres sites Web.

Le mécanisme par lequel les utilisateurs importent un fichier de description (et donc son contrôle serveur associé) dans une page Web est le ImportCatalogPart contrôle, qu’un développeur de pages doit ajouter à une page Web. Lorsqu’un utilisateur bascule la page en mode d’affichage catalogue, le ImportCatalogPart contrôle s’affiche et l’utilisateur peut utiliser ce contrôle pour accéder au . Fichier de description webPart correspondant au contrôle serveur qu’il souhaite importer. En suivant l’interface utilisateur et les instructions fournies par le ImportCatalogPart contrôle, un utilisateur peut ajouter le contrôle serveur souhaité dans la page Web, avec son apparence et ses propriétés entièrement configurées comme spécifié dans le fichier de description importé.

Avant que le fichier de description d’un WebPart contrôle puisse être importé, un utilisateur doit d’abord créer (exporter) le fichier en fonction d’un contrôle existant WebPart . Un fichier de description peut être exporté pour un contrôle si les conditions suivantes sont remplies :

  • Les propriétés du contrôle sont marquées avec l’attribut Personalizable .

  • La valeur d’attribut du enableExport fichier Web.config est définie true sur sur l’élément <webParts> .

  • Un développeur définit la valeur de la ExportMode propriété sur le contrôle sur une valeur autre que la valeur par défaut de None, ce qui interdit l’exportation. Si la valeur de la ExportMode propriété est définie sur NonSensitiveData, toute propriété qui contient un IsSensitive paramètre avec un Personalizable attribut n’est pas exportée lorsqu’un utilisateur exporte un fichier de description. Cela permet aux développeurs de contrôle d’empêcher l’exportation de données sensibles, telles que les chaînes de connexion, dans certaines situations.

Un utilisateur peut exporter un contrôle qui a été activé pour l’exportation en cliquant sur le verbe d’exportation qui apparaît dans le menu verbes du contrôle et en suivant les instructions pour enregistrer un . Fichier de description webPart pour le contrôle. D’autres utilisateurs peuvent ensuite importer ce fichier pour configurer leurs propres instances du contrôle.

La ImportCatalogPart classe contient plusieurs propriétés. La BrowseHelpText propriété contient du texte avec des instructions pour les utilisateurs lorsqu’ils recherchent le fichier de description. La ImportedPartLabelText propriété contient du texte qui sert d’étiquette pour le contrôle importé tel qu’il apparaît dans le ImportCatalogPart contrôle. contient du PartImportErrorLabelText texte qui s’affiche si une erreur se produit lors de l’importation d’une description de contrôle. La Title propriété remplace la propriété de base pour affecter un titre par défaut à un ImportCatalogPart contrôle si le développeur n’attribue pas de titre. La UploadButtonText propriété contient le texte du bouton sur lequel l’utilisateur clique pour charger le fichier de description, et la UploadHelpText propriété contient les instructions du processus de chargement.

La ImportCatalogPart classe contient également plusieurs méthodes uniques. La GetAvailableWebPartDescriptions méthode récupère un WebPartDescription objet pour chaque WebPart contrôle du catalogue, ce qui permet à un contrôle d’afficher ImportCatalogPart des informations sur chaque contrôle serveur sans avoir à en créer un instance. La GetWebPart méthode obtient une instance d’un contrôle particulierWebPart, en fonction de la description passée à la méthode.

L’utilisation du ImportCatalogPart contrôle comporte certains risques inhérents. Par exemple, il est possible d’importer des données malveillantes dans votre application web via les fichiers de description utilisés pour l’importation. Si quelqu’un a placé du code de script malveillant comme valeur d’une propriété de chaîne dans le fichier de description, ce script peut potentiellement être exécuté lorsqu’un utilisateur importe le fichier de description et ajoute le contrôle serveur référencé à une page Web. Pour réduire le risque d’importation de fichiers de description avec des données malveillantes, les contrôles serveur qui ont des propriétés de type chaîne doivent toujours encoder les données de propriété. Un autre risque implique l’importation de types via des fichiers de description (voir WebPart Control Description Files). Un utilisateur malveillant peut envoyer des demandes pour charger de nombreux assemblys dans le AppDomain, ce qui entraîne une consommation excessive de mémoire.

Pour éviter les risques associés à l’importation, vous pouvez désactiver complètement la fonctionnalité en n’utilisant pas la fonctionnalité d’importation ou le ImportCatalogPart contrôle. Vous pouvez également limiter les utilisateurs ayant accès au contrôle. Vous pouvez le faire par programmation, à l’aide de la gestion des rôles (voir Gestion des autorisations à l’aide de rôles). Par instance, lorsque la page se charge, vous pouvez tester pour voir si un utilisateur a un rôle spécifique, tel que le rôle administrateur. Si l’utilisateur est dans le rôle, vous pouvez ajouter par programmation le ImportCatalogPart contrôle à la page de cet utilisateur. Vous pouvez également utiliser une approche déclarative pour limiter l’ensemble d’utilisateurs pouvant utiliser le ImportCatalogPart contrôle. Dans votre page web qui contient un catalogue, vous pouvez placer deux CatalogZone contrôles : l’un pour les utilisateurs qui peuvent importer et l’autre pour ceux qui ne le peuvent pas. La zone pour les utilisateurs qui peuvent importer contiendrait le ImportCatalogPart contrôle . La zone elle-même peut être placée à l’intérieur d’un LoginView contrôle, ce qui vous permettrait de limiter l’utilisation du contrôle dans la zone aux utilisateurs authentifiés ou aux rôles que vous spécifiez.

Constructeurs

ImportCatalogPart()

Initialise une nouvelle instance de la classe ImportCatalogPart.

Propriétés

AccessKey

Obtient ou définit la touche d'accès rapide qui vous permet de naviguer rapidement vers le contrôle serveur Web.

(Hérité de WebControl)
Adapter

Obtient l'adaptateur spécifique au navigateur pour le contrôle.

(Hérité de Control)
AppRelativeTemplateSourceDirectory

Obtient ou définit le répertoire virtuel relatif à l'application de l'objet Page ou UserControl qui contient ce contrôle.

(Hérité de Control)
Attributes

Obtient la collection d'attributs arbitraires (pour le rendu uniquement) qui ne correspondent pas à des propriétés du contrôle.

(Hérité de WebControl)
BackColor

Obtient ou définit la couleur d'arrière-plan du contrôle serveur Web.

(Hérité de WebControl)
BackImageUrl

Obtient ou définit l'URL de l'image d'arrière-plan du contrôle du volet.

(Hérité de Panel)
BindingContainer

Obtient le contrôle qui contient la liaison de données de ce contrôle.

(Hérité de Control)
BorderColor

Obtient ou définit la couleur de bordure du contrôle Web.

(Hérité de WebControl)
BorderStyle

Obtient ou définit le style de bordure du contrôle serveur Web.

(Hérité de WebControl)
BorderWidth

Obtient ou définit la largeur de bordure du contrôle serveur Web.

(Hérité de WebControl)
BrowseHelpText

Obtient ou définit un message texte qui demande aux utilisateurs d'accéder à l'emplacement d'un fichier de description.

ChildControlsCreated

Obtient une valeur qui indique si des contrôles enfants du contrôle serveur ont été créés.

(Hérité de Control)
ChromeState

Obtient ou définit si un contrôle Part doit s'afficher dans un état réduit ou normal.

(Hérité de Part)
ChromeType

Obtient ou définit le type de bordure qui encadre un contrôle WebPart.

(Hérité de Part)
ClientID

Obtient l’ID de contrôle du balisage HTML généré par ASP.NET.

(Hérité de Control)
ClientIDMode

Obtient ou définit l'algorithme utilisé pour générer la valeur de la propriété ClientID.

(Hérité de Control)
ClientIDSeparator

Obtient une valeur de caractère représentant le caractère de séparation utilisé dans la propriété ClientID.

(Hérité de Control)
Context

Obtient l'objet HttpContext associé au contrôle serveur pour la demande Web en cours.

(Hérité de Control)
Controls

Obtient un objet ControlCollection qui contient les contrôles enfants d'un contrôle serveur spécifié dans la hiérarchie de l'interface utilisateur.

(Hérité de Part)
ControlStyle

Obtient le style d'un contrôle serveur Web. Cette propriété est principalement utilisée par des développeurs de contrôles.

(Hérité de WebControl)
ControlStyleCreated

Obtient une valeur indiquant si un objet Style a été créé pour la propriété ControlStyle. Cette propriété est principalement utilisée par des développeurs de contrôles.

(Hérité de WebControl)
CssClass

Obtient ou définit la classe de feuille de style en cascade (CSS, Cascading Style Sheet) rendue par le contrôle serveur Web sur le client.

(Hérité de WebControl)
DataItemContainer

Obtient une référence au conteneur d'attribution de noms si celui-ci implémente IDataItemContainer.

(Hérité de Control)
DataKeysContainer

Obtient une référence au conteneur d'attribution de noms si celui-ci implémente IDataKeysControl.

(Hérité de Control)
DefaultButton

Obtient ou définit le bouton dans l'interface utilisateur qui est considéré comme le bouton par défaut qui reçoit le focus lorsque le formulaire contenant le bouton est restitué. Cette propriété n'est pas destinée à être appelée à partir du code du développeur de pages.

Description

Obtient ou définit une brève expression qui résume la fonction du contrôle Part, en vue d'une utilisation dans les info-bulles et les catalogues de contrôles Part.

(Hérité de Part)
DesignMode

Obtient une valeur indiquant si un contrôle est utilisé sur une aire de conception.

(Hérité de Control)
Direction

Obtient ou définit le sens dans lequel afficher les contrôles qui intègrent du texte dans un contrôle Panel.

(Hérité de Panel)
DisplayTitle

Obtient une chaîne qui contient le titre actuel réel d'un contrôle CatalogPart.

(Hérité de CatalogPart)
Enabled

Obtient ou définit une valeur indiquant si le contrôle serveur Web est activé.

(Hérité de WebControl)
EnableTheming

Obtient ou définit une valeur indiquant si les thèmes s'appliquent à ce contrôle.

(Hérité de WebControl)
EnableViewState

Obtient ou définit une valeur indiquant si le contrôle serveur conserve son état d’affichage, et l’état d’affichage de tous les contrôles enfants qu’il contient, au client demandeur.

(Hérité de Control)
Events

Obtient la liste des délégués de gestionnaires d'événements pour le contrôle. Cette propriété est en lecture seule.

(Hérité de Control)
Font

Obtient les propriétés de police associées au contrôle serveur Web.

(Hérité de WebControl)
ForeColor

Obtient ou définit la couleur de premier plan (généralement la couleur du texte) du contrôle serveur Web.

(Hérité de WebControl)
GroupingText

Obtient ou définit la légende du groupe de contrôles qui figure dans le contrôle de panneau.

(Hérité de Panel)
HasAttributes

Obtient une valeur indiquant si le contrôle a des attributs définis.

(Hérité de WebControl)
HasChildViewState

Obtient une valeur indiquant si les contrôles enfants du contrôle serveur en cours possèdent des paramètres d'état d'affichage enregistrés.

(Hérité de Control)
Height

Obtient ou définit la hauteur du contrôle serveur Web.

(Hérité de WebControl)
HorizontalAlign

Obtient ou définit l'alignement horizontal du contenu dans le volet.

(Hérité de Panel)
ID

Obtient ou définit l'ID programmatique assigné au contrôle serveur.

(Hérité de Control)
IdSeparator

Obtient le caractère utilisé pour séparer des identificateurs de contrôle.

(Hérité de Control)
ImportedPartLabelText

Obtient ou définit le texte affiché lorsqu'un utilisateur importe un fichier de description pour représenter ou décrire le contrôle importé dans le catalogue de contrôles importés.

IsChildControlStateCleared

Obtient une valeur indiquant si les contrôles contenus dans ce contrôle utilisent l'état du contrôle.

(Hérité de Control)
IsEnabled

Obtient une valeur indiquant si le contrôle est activé.

(Hérité de WebControl)
IsTrackingViewState

Obtient une valeur qui indique si le contrôle serveur enregistre les modifications apportées à son état d'affichage.

(Hérité de Control)
IsViewStateEnabled

Obtient une valeur indiquant si l'état d'affichage est activé pour ce contrôle.

(Hérité de Control)
LoadViewStateByID

Obtient une valeur indiquant si le contrôle participe au chargement de son état d'affichage par ID et non par index.

(Hérité de Control)
NamingContainer

Obtient une référence au conteneur d'attribution de noms du contrôle serveur, qui crée un espace de noms unique pour différencier les contrôles serveur dont la propriété ID possède la même valeur.

(Hérité de Control)
Page

Obtient une référence à l'instance de Page qui contient le contrôle serveur.

(Hérité de Control)
Parent

Obtient une référence au contrôle parent du contrôle serveur dans la hiérarchie des contrôles de la page.

(Hérité de Control)
PartImportErrorLabelText

Obtient ou définit un message d'erreur qui s'affiche si une erreur se produit pendant le processus d'importation.

RenderingCompatibility

Obtient une valeur qui spécifie la version ASP.NET avec laquelle le HTML restitué sera compatible.

(Hérité de Control)
ScrollBars

Obtient ou définit la visibilité et la position des barres de défilement dans un contrôle Panel.

(Hérité de Panel)
Site

Obtient des informations sur le conteneur qui héberge le contrôle en cours lorsqu'il est rendu sur une aire de conception.

(Hérité de Control)
SkinID

Obtient ou définit l’apparence à appliquer au contrôle.

(Hérité de WebControl)
Style

Obtient une collection d'attributs de texte qui sont rendus en tant qu'attribut de style sur la balise extérieure d'un contrôle serveur Web.

(Hérité de WebControl)
SupportsDisabledAttribute

Obtient une valeur qui indique si le contrôle doit définir l'attribut disabled de l'élément HTML rendu avec la valeur « disabled » quand la propriété IsEnabled du contrôle a la valeur false.

(Hérité de Panel)
TabIndex

Obtient ou définit l'index de tabulation du contrôle serveur Web.

(Hérité de WebControl)
TagKey

Obtient la valeur HtmlTextWriterTag qui correspond à ce contrôle serveur Web. Cette propriété est principalement utilisée par des développeurs de contrôles.

(Hérité de WebControl)
TagName

Obtient le nom de la balise du contrôle. Cette propriété est principalement utilisée par des développeurs de contrôles.

(Hérité de WebControl)
TemplateControl

Obtient ou définit une référence au modèle qui contient ce contrôle.

(Hérité de Control)
TemplateSourceDirectory

Obtient le répertoire virtuel du Page ou du UserControl qui contient le contrôle serveur en cours.

(Hérité de Control)
Title

Obtient ou définit le titre qui apparaît dans la barre de titre d'un contrôle ImportCatalogPart.

ToolTip

Obtient ou définit le texte affiché quand le pointeur de la souris est positionné sur le contrôle serveur Web.

(Hérité de WebControl)
UniqueID

Obtient l'identificateur unique qualifié sur le plan hiérarchique du contrôle serveur.

(Hérité de Control)
UploadButtonText

Obtient ou définit le texte pour le contrôle Button qui initialise le transfert d'un fichier de description.

UploadHelpText

Obtient ou définit le texte du message qui explique à l'utilisateur comment transférer un fichier de description.

ValidateRequestMode

Obtient ou définit une valeur qui indique si le contrôle vérifie l'entrée cliente du navigateur à la recherche de valeurs potentiellement dangereuses.

(Hérité de Control)
ViewState

Obtient un dictionnaire d'informations d'état qui vous permet d'enregistrer et de restaurer l'état d'affichage d'un contrôle serveur entre plusieurs demandes de la même page.

(Hérité de Control)
ViewStateIgnoresCase

Obtient une valeur qui indique si l'objet StateBag respecte la casse.

(Hérité de Control)
ViewStateMode

Obtient ou définit le mode d'état d'affichage de ce contrôle.

(Hérité de Control)
Visible

Obtient ou définit une valeur qui indique si un contrôle serveur est rendu en tant qu’interface utilisateur sur la page.

(Hérité de Control)
WebPartManager

Obtient une référence à l'instance actuelle de la classe WebPartManager.

(Hérité de CatalogPart)
Width

Obtient ou définit la largeur du contrôle serveur web.

(Hérité de WebControl)
Wrap

Obtient ou définit une valeur indiquant si le contenu est encapsulé dans le volet.

(Hérité de Panel)
Zone

Obtient une référence à la zone CatalogZoneBase qui contient un contrôle CatalogPart.

(Hérité de CatalogPart)

Méthodes

AddAttributesToRender(HtmlTextWriter)

Ajoute des informations relatives à l'image d'arrière-plan, à l'alignement, au retour à la ligne et à la direction vers la liste des attributs à rendre.

(Hérité de Panel)
AddedControl(Control, Int32)

Méthode appelée après qu’un contrôle enfant est ajouté à la collection Controls de l’objet Control.

(Hérité de Control)
AddParsedSubObject(Object)

Avertit le contrôle serveur qu’un élément XML ou HTML a été analysé, et ajoute l’élément à l’objet ControlCollection du contrôle serveur.

(Hérité de Control)
ApplyStyle(Style)

Copie tous les éléments non vides du style spécifié vers le contrôle Web, en remplaçant les éléments de style existants du contrôle. Cette méthode est principalement utilisée par des développeurs de contrôles.

(Hérité de WebControl)
ApplyStyleSheetSkin(Page)

Applique les propriétés de style définies dans la feuille de style de la page au contrôle.

(Hérité de Control)
BeginRenderTracing(TextWriter, Object)

Commence le traçage au moment du design des données de rendu.

(Hérité de Control)
BuildProfileTree(String, Boolean)

Collecte des informations sur le contrôle serveur et les livre à la propriété Trace à afficher lorsque le traçage est activé pour la page.

(Hérité de Control)
ClearCachedClientID()

Affecte à la valeur ClientID mise en cache la valeur null.

(Hérité de Control)
ClearChildControlState()

Supprime les informations sur l'état du contrôle des contrôles enfants du contrôle serveur.

(Hérité de Control)
ClearChildState()

Supprime les informations sur l'état d'affichage et sur l'état du contrôle de tous les contrôles enfants du contrôle serveur.

(Hérité de Control)
ClearChildViewState()

Supprime les informations d'état d'affichage de tous les contrôles enfants du contrôle serveur.

(Hérité de Control)
ClearEffectiveClientIDMode()

Affecte la valeur ClientIDMode à la propriété Inherit de l'instance de contrôle actuelle et de tous contrôles enfants.

(Hérité de Control)
CopyBaseAttributes(WebControl)

Copie les propriétés non encapsulées par l'objet Style du contrôle serveur Web spécifié vers le contrôle serveur Web à partir duquel cette méthode est appelée. Cette méthode est principalement utilisée par des développeurs de contrôles.

(Hérité de WebControl)
CreateChildControls()

Appelée par l’infrastructure de page ASP.NET pour signaler aux contrôles serveur qu’ils doivent utiliser l’implémentation basée sur la composition pour créer les contrôles enfants qu’ils contiennent en vue de la publication ou du rendu.

(Hérité de Control)
CreateControlCollection()

Crée un objet ControlCollection pour contenir les contrôles enfants (littéraux et serveur) du contrôle serveur.

(Hérité de Control)
CreateControlStyle()

Crée un objet de style qui est utilisé de manière interne par le contrôle Panel pour implémenter toutes les propriétés associées au style.

(Hérité de Panel)
DataBind()

Lie une source de données au contrôle serveur appelé et à tous ses contrôles enfants.

(Hérité de Part)
DataBind(Boolean)

Lie une source de données au contrôle serveur appelé et tous ses contrôles enfants avec une option pour déclencher l'événement DataBinding.

(Hérité de Control)
DataBindChildren()

Lie une source de données aux contrôles enfants du contrôle serveur.

(Hérité de Control)
Dispose()

Permet à un contrôle serveur d'effectuer le nettoyage final avant qu'il soit libéré de la mémoire.

(Hérité de Control)
EndRenderTracing(TextWriter, Object)

Met fin au traçage au moment du design des données de rendu.

(Hérité de Control)
EnsureChildControls()

Détermine si le contrôle serveur contient des contrôles enfants. S'il ne contient pas de contrôles enfants, il en crée.

(Hérité de Control)
EnsureID()

Crée un identificateur pour les contrôles auxquels aucun identificateur n'est assigné.

(Hérité de Control)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
FindControl(String)

Recherche un contrôle serveur possédant le paramètre id spécifié dans le conteneur d'attribution de noms actuel.

(Hérité de Control)
FindControl(String, Int32)

Recherche le conteneur d'attribution de noms actuel d'un contrôle serveur avec l'id spécifié et un entier, spécifié dans le paramètre pathOffset, qui facilite la recherche. Vous ne devez pas substituer cette version de la méthode FindControl.

(Hérité de Control)
Focus()

Affecte le focus d'entrée à un contrôle.

(Hérité de Control)
GetAvailableWebPartDescriptions()

Retourne une collection de descriptions des contrôles WebPart disponibles dans un catalogue.

GetDesignModeState()

Récupère l'état actuel d'une zone parente d'un contrôle CatalogPart.

(Hérité de CatalogPart)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetRouteUrl(Object)

Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire.

(Hérité de Control)
GetRouteUrl(RouteValueDictionary)

Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire.

(Hérité de Control)
GetRouteUrl(String, Object)

Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire et à un nom d'itinéraire.

(Hérité de Control)
GetRouteUrl(String, RouteValueDictionary)

Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire et à un nom d'itinéraire.

(Hérité de Control)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
GetUniqueIDRelativeTo(Control)

Retourne la partie préfixée de la propriété UniqueID du contrôle spécifié.

(Hérité de Control)
GetWebPart(WebPartDescription)

Retourne une référence à un contrôle WebPart en fonction des valeurs de la description passée dans la méthode.

HasControls()

Détermine si le contrôle serveur contient des contrôles enfants.

(Hérité de Control)
HasEvents()

Retourne une valeur indiquant si des événements sont inscrits pour le contrôle ou des contrôles enfants.

(Hérité de Control)
IsLiteralContent()

Détermine si le contrôle serveur ne détient qu'un contenu littéral.

(Hérité de Control)
LoadControlState(Object)

Restaure des informations sur l'état du contrôle à partir d'une demande de page antérieure enregistrée par la méthode SaveControlState().

(Hérité de Control)
LoadViewState(Object)

Restaure les informations d'état d'affichage d'une demande précédente enregistrée avec la méthode SaveViewState().

(Hérité de WebControl)
MapPathSecure(String)

Récupère le chemin d'accès physique auquel un chemin d'accès virtuel, absolu ou relatif, correspond.

(Hérité de Control)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
MergeStyle(Style)

Copie tous les éléments non vides du style spécifié vers le contrôle Web, mais ne remplace aucun élément de style existant du contrôle. Cette méthode est principalement utilisée par des développeurs de contrôles.

(Hérité de WebControl)
OnBubbleEvent(Object, EventArgs)

Détermine si l’événement du contrôle serveur est passé dans la hiérarchie des contrôles serveur de l’interface utilisateur de la page.

(Hérité de Control)
OnDataBinding(EventArgs)

Déclenche l’événement DataBinding.

(Hérité de Control)
OnInit(EventArgs)

Déclenche l’événement Init.

(Hérité de Control)
OnLoad(EventArgs)

Déclenche l’événement Load.

(Hérité de Control)
OnPreRender(EventArgs)

Déclenche l’événement PreRender.

(Hérité de CatalogPart)
OnUnload(EventArgs)

Déclenche l’événement Unload.

(Hérité de Control)
OpenFile(String)

Obtient un Stream utilisé pour lire un fichier.

(Hérité de Control)
RaiseBubbleEvent(Object, EventArgs)

Assigne les sources éventuelles de l'événement et ses informations au parent du contrôle.

(Hérité de Control)
RemovedControl(Control)

Méthode appelée après la suppression d’un contrôle enfant de la collection Controls de l’objet Control.

(Hérité de Control)
Render(HtmlTextWriter)

Génère le rendu du contrôle via le writer HTML spécifié.

(Hérité de WebControl)
RenderBeginTag(HtmlTextWriter)

Génère le rendu de la balise d'ouverture HTML du contrôle Panel via le writer spécifié.

(Hérité de Panel)
RenderChildren(HtmlTextWriter)

Produit le contenu des enfants d'un contrôle serveur dans un objet HtmlTextWriter fourni qui écrit le contenu à restituer sur le client.

(Hérité de Control)
RenderContents(HtmlTextWriter)

Génère le rendu du contenu du contrôle via le writer spécifié. Cette méthode est principalement utilisée par des développeurs de contrôles.

(Hérité de WebControl)
RenderControl(HtmlTextWriter)

Envoie le contenu du contrôle serveur à un objet HtmlTextWriter fourni et stocke les informations de traçage sur le contrôle si le traçage est activé.

(Hérité de Control)
RenderControl(HtmlTextWriter, ControlAdapter)

Génère le contenu du contrôle serveur dans un objet HtmlTextWriter à l'aide d'un objet ControlAdapter fourni.

(Hérité de Control)
RenderEndTag(HtmlTextWriter)

Génère le rendu de la balise de fermeture HTML du contrôle Panel via le writer spécifié.

(Hérité de Panel)
ResolveAdapter()

Obtient l'adaptateur de contrôles responsable du rendu du contrôle spécifié.

(Hérité de Control)
ResolveClientUrl(String)

Obtient une URL qui peut être utilisée par le navigateur.

(Hérité de Control)
ResolveUrl(String)

Convertit une URL en une URL que le client soit en mesure d'utiliser.

(Hérité de Control)
SaveControlState()

Enregistre tous les changements d’état de contrôle serveur qui ont eu lieu depuis que la page a été publiée sur le serveur.

(Hérité de Control)
SaveViewState()

Enregistre les états qui ont été modifiés après l’appel de la méthode TrackViewState().

(Hérité de WebControl)
SetDesignModeState(IDictionary)

Définit les données au moment du design pour un contrôle.

(Hérité de CatalogPart)
SetRenderMethodDelegate(RenderMethod)

Assigne un délégué de gestionnaires d'événements pour générer le rendu du contrôle serveur et de son contenu dans son contrôle parent.

(Hérité de Control)
SetTraceData(Object, Object)

Définit les données de trace pour le suivi du rendu des données au moment du design à l'aide de la clé des données de trace et de la valeur des données de trace.

(Hérité de Control)
SetTraceData(Object, Object, Object)

Définit les données de trace pour le suivi du rendu des données au moment du design, à l'aide de l'objet suivi, de la clé des données de trace et de la valeur des données de trace.

(Hérité de Control)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
TrackViewState()

Force le contrôle à suivre les modifications apportées à son état d’affichage afin qu’elles puissent être stockées dans la propriété ViewState.

(Hérité de WebControl)

Événements

DataBinding

Se produit lorsque le contrôle serveur se lie à une source de données.

(Hérité de Control)
Disposed

Se produit lorsqu'un contrôle serveur est libéré de la mémoire, ce qui constitue la dernière étape du cycle de vie d'un contrôle serveur en cas de demande d'une page ASP.NET.

(Hérité de Control)
Init

Se produit lorsque le contrôle serveur est initialisé, ce qui constitue la première étape de son cycle de vie.

(Hérité de Control)
Load

Se produit lorsque le contrôle serveur est chargé dans l'objet Page.

(Hérité de Control)
PreRender

Se produit après le chargement de l'objet Control mais avant le rendu.

(Hérité de Control)
Unload

Se produit lorsque le contrôle serveur est déchargé de la mémoire.

(Hérité de Control)

Implémentations d’interfaces explicites

IAttributeAccessor.GetAttribute(String)

Obtient un attribut du contrôle Web avec le nom spécifié.

(Hérité de WebControl)
IAttributeAccessor.SetAttribute(String, String)

Affecte au nom et à la valeur spécifiés un attribut du contrôle Web.

(Hérité de WebControl)
ICompositeControlDesignerAccessor.RecreateChildControls()

Permet au développeur d'un concepteur de contrôle Part composite de recréer les contrôles enfants du contrôle sur l'aire de conception.

(Hérité de Part)
IControlBuilderAccessor.ControlBuilder

Pour obtenir une description de ce membre, consultez ControlBuilder.

(Hérité de Control)
IControlDesignerAccessor.GetDesignModeState()

Pour obtenir une description de ce membre, consultez GetDesignModeState().

(Hérité de Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Pour obtenir une description de ce membre, consultez SetDesignModeState(IDictionary).

(Hérité de Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Pour obtenir une description de ce membre, consultez SetOwnerControl(Control).

(Hérité de Control)
IControlDesignerAccessor.UserData

Pour obtenir une description de ce membre, consultez UserData.

(Hérité de Control)
IDataBindingsAccessor.DataBindings

Pour obtenir une description de ce membre, consultez DataBindings.

(Hérité de Control)
IDataBindingsAccessor.HasDataBindings

Pour obtenir une description de ce membre, consultez HasDataBindings.

(Hérité de Control)
IExpressionsAccessor.Expressions

Pour obtenir une description de ce membre, consultez Expressions.

(Hérité de Control)
IExpressionsAccessor.HasExpressions

Pour obtenir une description de ce membre, consultez HasExpressions.

(Hérité de Control)
IParserAccessor.AddParsedSubObject(Object)

Pour obtenir une description de ce membre, consultez AddParsedSubObject(Object).

(Hérité de Control)

Méthodes d’extension

FindDataSourceControl(Control)

Retourne la source de données associée au contrôle de données pour le contrôle spécifié.

FindFieldTemplate(Control, String)

Retourne le modèle de champ pour la colonne spécifiée dans le conteneur d'attribution de noms du contrôle spécifié.

FindMetaTable(Control)

Retourne l'objet Metatable pour le contrôle de données conteneur.

GetDefaultValues(INamingContainer)

Obtient la collection des valeurs par défaut pour le contrôle de données spécifié.

GetMetaTable(INamingContainer)

Obtient les métadonnées de table pour le contrôle de données spécifié.

SetMetaTable(INamingContainer, MetaTable)

Définit les métadonnées de table pour le contrôle de données spécifié.

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

Définit les métadonnées de table et le mappage des valeurs par défaut pour le contrôle de données spécifié.

SetMetaTable(INamingContainer, MetaTable, Object)

Définit les métadonnées de table et le mappage des valeurs par défaut pour le contrôle de données spécifié.

TryGetMetaTable(INamingContainer, MetaTable)

Détermine si des métadonnées de table sont disponibles.

EnableDynamicData(INamingContainer, Type)

Active le comportement Dynamic Data pour le contrôle de données spécifié.

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

Active le comportement Dynamic Data pour le contrôle de données spécifié.

EnableDynamicData(INamingContainer, Type, Object)

Active le comportement Dynamic Data pour le contrôle de données spécifié.

S’applique à

Voir aussi