ImportCatalogPart Klasa

Definicja

Importuje plik opisu kontrolki WebPart (lub inne kontrolki serwera ASP.NET używane jako kontrolka WebPart ), aby użytkownicy mogli dodać kontrolkę do strony sieci Web ze wstępnie zdefiniowanymi ustawieniami. Klasa ta nie może być dziedziczona.

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
Dziedziczenie

Przykłady

W poniższym przykładzie kodu pokazano, jak deklaratywnie i programowo używać ImportCatalogPart kontrolki na stronie sieci Web. Przykład zawiera cztery części:

  • Kontrolka użytkownika, która umożliwia zmianę trybów wyświetlania na stronie składników Web Part.

  • Strona sieci Web zawierająca kontrolkę CatalogZone i kontrolkę ImportCatalogPart .

  • Plik kodu źródłowego zawierający dwie kontrolki niestandardowe WebPart .

  • Wyjaśnienie działania przykładu podczas ładowania strony w przeglądarce.

Pierwszą częścią tego przykładu kodu jest kontrolka użytkownika, która umożliwia użytkownikom zmienianie trybów wyświetlania na stronie sieci Web. W pliku należy umieścić następujący kod źródłowy i nadaj mu nazwę Displaymodemenucs.ascx lub Displaymodemenuvb.ascx (w zależności od używanego języka). Aby uzyskać szczegółowe informacje na temat trybów wyświetlania i opisu kodu źródłowego w tej kontrolce, zobacz Przewodnik: zmienianie trybów wyświetlania na stronie składników 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>

Drugą częścią przykładu kodu jest strona sieci Web. W górnej części strony znajdują się dwie register dyrektywy, jedna dla kontrolki użytkownika i jedna dla skompilowanego składnika zawierającego dwie kontrolki niestandardowe WebPart . Zwróć uwagę, że strona ma deklaratywne odwołanie do kontrolki ImportCatalogPart zagnieżdżone w odpowiedniej hierarchii elementów deklaratywnych. Zauważ również, że kilka wartości właściwości jest przypisywanych deklaratywnie w elemecie <asp:importcatalogpart> . Button1_Click Ponadto metoda aktualizuje wiele wartości właściwości w kontrolceImportCatalogPart.

W kontrolce strony WebPartZone zadeklarowane są dwie kontrolki niestandardowe WebPart . Kontrolka <aspSample:userinfowebpart> ma exportmode="all" na nim atrybut . Ten atrybut jest wymagany, aby umożliwić użytkownikom eksportowanie pliku opisu dla kontrolki, który można następnie zaimportować przez innych użytkowników, którzy chcą zaimportować kontrolkę przy użyciu pliku opisu.

Uwaga

Aby umożliwić użytkownikom aplikacji składników Web Part eksportowanie pliku opisu dla WebPart kontrolek, należy również włączyć funkcję eksportowania w aplikacji sieci Web, dodając enableExport="true" atrybut do <webParts> elementu (który jest elementem podrzędnym <system.web> elementu) w pliku Web.config. Eksport jest domyślnie wyłączony, więc jeśli nie włączono jeszcze eksportu dla aplikacji, edytuj plik Web.config i zrób to teraz.

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

Trzecią częścią przykładu kodu jest kod źródłowy dla tych dwóch WebPart kontrolek. Zwróć uwagę, że niektóre właściwości tych kontrolek są oznaczone atrybutem WebBrowsable . Dzięki temu kontrolka PropertyGridEditorPart może dynamicznie generować interfejs użytkownika dla użytkownika w celu edytowania tych właściwości, gdy kontrolki są w trybie edycji. Właściwości są również oznaczone atrybutem WebDisplayName , aby określić tekst etykiety wyświetlanej obok każdej kontrolki w interfejsie użytkownika edycji. Aby można było uruchomić przykładowy kod, należy skompilować ten kod źródłowy. Można je skompilować jawnie i umieścić wynikowy zestaw w folderze Bin witryny sieci Web lub globalnej pamięci podręcznej zestawów. Alternatywnie można umieścić kod źródłowy w folderze App_Code witryny, w którym będzie dynamicznie kompilowany w czasie wykonywania. W tym przykładzie kodu jest używana kompilacja dynamiczna. Aby zapoznać się z przewodnikiem, który demonstruje obie metody kompilowania, zobacz Przewodnik: opracowywanie i używanie niestandardowej kontrolki serwera sieci Web.

Kontrolka niestandardowa o nazwie TextDisplayWebPart jest przywoływała się na stronie sieci Web za pomocą <aspSample:TextDisplayWebPart> elementu . Druga kontrolka, o nazwie UserInfoWebPart, jest również zadeklarowana na stronie sieci Web początkowo, choć później usuniesz ją, aby zademonstrować możliwość importowania pliku opisu dla kontrolki.

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

Teraz uruchom przykładowy kod. Załaduj stronę internetową w przeglądarce. Pierwszym krokiem jest edytowanie kontrolki UserInfoWebPart . Użyj kontrolki listy rozwijanej Tryb wyświetlania i wybierz pozycję Edytuj , aby przełączyć stronę do trybu edycji. Kliknij menu czasowników kontrolki UserInfoWebPart (strzałka w dół na pasku tytułu), a następnie kliknij przycisk Edytuj. Po wyświetleniu interfejsu użytkownika edycji poniżej UserInfoWebPart kontrolki edycji, których można użyć do edytowania jego wartości pól. Edytuj niektóre pola, kliknij przycisk OK, a następnie użyj listy rozwijanej Tryb wyświetlania , aby powrócić do trybu przeglądania strony.

Drugim krokiem jest wyeksportowanie elementu . Plik opisu składnika Web Part dla kontrolki UserInfoWebPart . Kliknij menu czasowników w kontrolce niestandardowej (reprezentowane przez strzałkę w dół na pasku tytułu), a następnie kliknij przycisk Eksportuj. Postępuj zgodnie z instrukcjami, aby zapisać element . Plik opisu składnika Web Part dla kontrolki. Teraz zamknij stronę sieci Web i edytuj źródło strony w edytorze. Usuń element deklaracji kontrolki <aspSample:userinfowebpart> , a następnie zapisz i zamknij plik. (Wykonujesz ten krok, aby zasymulować użytkownika, który nie ma jeszcze kontrolki UserInfoWebPart , aby można było zaimportować kontrolkę do strony).

Załaduj ponownie stronę internetową w przeglądarce. Kontrolka nie powinna być wyświetlana UserInfoWebPart , ponieważ została usunięta. Użyj kontrolki listy rozwijanej Tryb wyświetlania i wybierz pozycję Wykaz , aby przełączyć stronę do trybu wykazu. W kontrolce ImportCatalogPart kliknij przycisk Przeglądaj i przejdź do . Utworzony plik składnika Web Part, a następnie kliknij przycisk Przekaż . Odwołanie do kontrolki powinno zostać wyświetlone z polem wyboru obok niego. Zaznacz pole wyboru, a następnie kliknij przycisk Dodaj , aby dodać kontrolkę do strony.

W tym widoku strony kliknij przycisk Aktualizuj element ImportCatalogPart w dolnej części strony, aby zobaczyć efekt programowego aktualizowania kilku wartości właściwości w kontrolce ImportCatalogPart . Po kliknięciu przycisku sprawdź, jak różne właściwości są zmieniane w interfejsie użytkownika.

Na koniec kliknij przycisk Zamknij , aby zamknąć tryb wykazu i zwrócić stronę do trybu przeglądania. Kontrolka UserInfoWebPart powinna teraz pojawić się na stronie zawierającej wartości, które zostały wyeksportowane wcześniej.

Uwagi

Kontrolka ImportCatalogPart umożliwia użytkownikom importowanie pliku opisu opisującego ustawienia w kontrolce WebPart lub kontroli serwera, którą użytkownik chce dodać do WebPartZoneBase strefy.

Gdy użytkownik zaimportuje plik opisu, kontrolka, WebPart do których odwołuje się plik, pojawi się w kontrolce ImportCatalogPart , a użytkownik może dodać kontrolkę do strony.

Plik opisu nie jest taki sam jak sam formant. Jest to plik XML kończący się ciągiem . Rozszerzenie składnika Web Part i zawiera pary nazwa/wartość — głównie wartości właściwości — które opisują stan kontrolki. Plik opisu jest tworzony zgodnie z określonym formatem XML zgodnie z opisem w temacie Pliki opisu formantu składników Web Part.

Jeśli chodzi o formant, do którego odwołuje się plik opisu, można go skompilować do zestawu lub może być kontrolką użytkownika zdefiniowaną w pliku ascx. W obu przypadkach kontrolka, do którego odwołuje się importowany plik opisu, musi istnieć na serwerze sieci Web, który hostuje stronę, która próbuje zaimportować kontrolkę. Plik opisu odwołuje się do nazwy kontrolki i zestawu (lub pliku), który zawiera kontrolkę, a plik opisu zawiera ustawienia wpływające na wartości właściwości kontrolki, wygląd i zachowanie.

Kontrolka ImportCatalogPart umożliwia użytkownikom udostępnianie ustawień kontrolek. Złożona kontrolka może mieć wiele właściwości i ustawień. Na przykład w typowej witrynie intranetowej w dużej firmie kontrolka niestandardowa WebPart może zawierać wiele właściwości, które przechowują wartości specyficzne dla środowiska użytkownika, takie jak ich Połączenia z bazą danych, informacje o dziale itd. Kontrolka może również zawierać wiele właściwości, które wpływają na jej wygląd. Jeden użytkownik może spersonalizować kontrolkę w określonej witrynie i prawidłowo ją pracować, wyeksportować plik opisu dla kontrolki, a następnie udostępnić plik opisu innym użytkownikom, którzy mogą zaimportować plik, aby dodać w pełni skonfigurowaną kontrolę do innych witryn intranetowych, które mogą personalizować. Tak długo, jak skompilowany zestaw lub plik sterowania użytkownika zawierający kontrolkę istnieje na serwerze sieci Web, który hostuje ich witrynę, użytkownicy mogą dodać kontrolkę do innych witryn sieci Web.

Mechanizm, za pomocą którego użytkownicy importuje plik opisu (a tym samym skojarzony formant serwera) do strony sieci Web, to ImportCatalogPart kontrolka, którą deweloper strony musi dodać do strony sieci Web. Gdy użytkownik przełączy stronę do trybu wyświetlania wykazu, ImportCatalogPart zostanie wyświetlona kontrolka, a użytkownik może kontrolować tę kontrolkę, aby przejść do . Plik opisu składnika Web Part odpowiadający kontrolce serwera, który chce zaimportować. Zgodnie z interfejsem użytkownika i instrukcjami dostarczonymi przez ImportCatalogPart kontrolkę użytkownik może dodać żądaną kontrolkę serwera do strony sieci Web z jego wyglądem i właściwościami w pełni skonfigurowanymi zgodnie z opisem w zaimportowanym pliku opisu.

WebPart Aby można było zaimportować plik opisu kontrolki, użytkownik musi najpierw utworzyć (wyeksportować) plik na podstawie istniejącej WebPart kontrolki. Plik opisu można wyeksportować dla kontrolki, jeśli spełnione są następujące warunki:

  • Kontrolka ma właściwości oznaczone atrybutem Personalizable .

  • Plik Web.config ma wartość atrybutu ustawioną enableExport na true w elemecie <webParts> .

  • Deweloper ustawia wartość ExportMode właściwości kontrolki na wartość inną niż wartość Nonedomyślna , która uniemożliwia eksportowanie. ExportMode Jeśli wartość właściwości jest ustawiona na NonSensitiveDatawartość , każda właściwość zawierająca IsSensitive parametr z atrybutem Personalizable nie jest eksportowana, gdy użytkownik eksportuje plik opisu. Dzięki temu deweloperzy mogą zapobiegać eksportowaniu poufnych danych, takich jak parametry połączenia, w pewnych sytuacjach.

Użytkownik może wyeksportować kontrolkę, która została włączona do eksportowania, klikając czasownik eksportu wyświetlany w menu czasowników kontrolki i postępując zgodnie z instrukcjami, aby zapisać element . Plik opisu składnika Web Part dla kontrolki. Inni użytkownicy mogą następnie zaimportować ten plik, aby skonfigurować własne wystąpienia kontrolki.

Klasa ImportCatalogPart zawiera kilka właściwości. Właściwość BrowseHelpText zawiera tekst z instrukcjami dla użytkowników podczas przeglądania w celu zlokalizowania pliku opisu. Właściwość ImportedPartLabelText zawiera tekst, który służy jako etykieta importowanej kontrolki, która jest wyświetlana w kontrolce ImportCatalogPart . Zawiera PartImportErrorLabelText tekst wyświetlany w przypadku wystąpienia błędu podczas importowania opisu kontrolki. Właściwość Title zastępuje właściwość podstawową, aby przypisać domyślny tytuł kontrolki ImportCatalogPart , jeśli deweloper nie przypisze tytułu. Właściwość UploadButtonText zawiera tekst przycisku, który użytkownik klika, aby przekazać plik opisu, a UploadHelpText właściwość zawiera instrukcje dotyczące procesu przekazywania.

Klasa ImportCatalogPart zawiera również kilka unikatowych metod. Metoda GetAvailableWebPartDescriptions pobiera WebPartDescription obiekt dla każdej WebPart kontrolki w wykazie, co umożliwia kontrolce ImportCatalogPart wyświetlanie informacji o każdej kontrolce serwera bez konieczności tworzenia wystąpienia. Metoda GetWebPart pobiera wystąpienie określonej WebPart kontrolki na podstawie opisu przekazanego do metody.

Istnieją pewne nieodłączne zagrożenia związane z używaniem kontrolki ImportCatalogPart . Przykładem jest możliwość zaimportowania złośliwych danych do aplikacji internetowej za pomocą plików opisu używanych do importowania. Jeśli ktoś umieścił złośliwy kod skryptu jako wartość właściwości ciągu w pliku opisu, ten skrypt może zostać potencjalnie wykonany, gdy użytkownik zaimportuje plik opisu i doda kontrolkę serwera, do którego istnieje odwołanie do strony sieci Web. Aby zminimalizować ryzyko importowania plików opisu za pomocą złośliwych danych, kontrolki serwera, które mają właściwości typu ciąg, powinny zawsze kodować dane właściwości. Inne ryzyko obejmuje importowanie typów za pomocą plików opisu (zobacz Pliki opisu kontrolek składników Web Part). Złośliwy użytkownik może przesyłać żądania ładowania wielu zestawów do AppDomainobiektu , co powoduje nadmierne wykorzystanie pamięci.

Aby uniknąć ryzyka związanego z importowaniem, możesz całkowicie wyłączyć tę funkcję, nie używając funkcji importowania ani kontrolki ImportCatalogPart . Możesz też ograniczyć dostęp użytkowników do kontroli. Można to zrobić programowo przy użyciu zarządzania rolami (zobacz Zarządzanie autoryzacją przy użyciu ról). Na przykład podczas ładowania strony można sprawdzić, czy użytkownik znajduje się w określonej roli, takiej jak rola administratora. Jeśli użytkownik znajduje się w roli, możesz programowo dodać kontrolkę ImportCatalogPart do strony dla tego użytkownika. Można również użyć podejścia deklaratywnego, aby ograniczyć zestaw użytkowników, którzy mogą używać kontrolki ImportCatalogPart . Na stronie sieci Web zawierającej wykaz można umieścić dwie CatalogZone kontrolki: jedną dla użytkowników, którzy mogą importować, i jedną dla tych, którzy nie mogą. Strefa dla użytkowników, którzy mogą importować, będzie zawierać kontrolkę ImportCatalogPart . Samą strefę LoginView można umieścić wewnątrz kontrolki, co pozwoli ograniczyć użycie kontrolki w strefie tylko do tych uwierzytelnionych użytkowników lub ról, które określisz.

Konstruktory

ImportCatalogPart()

Inicjuje nowe wystąpienie klasy ImportCatalogPart.

Właściwości

AccessKey

Pobiera lub ustawia klucz dostępu, który umożliwia szybkie przejście do kontroli serwera sieci Web.

(Odziedziczone po WebControl)
Adapter

Pobiera kartę specyficzną dla przeglądarki dla kontrolki.

(Odziedziczone po Control)
AppRelativeTemplateSourceDirectory

Pobiera lub ustawia względny katalog Page wirtualny aplikacji obiektu lub UserControl , który zawiera tę kontrolkę.

(Odziedziczone po Control)
Attributes

Pobiera kolekcję dowolnych atrybutów (tylko do renderowania), które nie odpowiadają właściwościom kontrolki.

(Odziedziczone po WebControl)
BackColor

Pobiera lub ustawia kolor tła kontrolki serwera sieci Web.

(Odziedziczone po WebControl)
BackImageUrl

Pobiera lub ustawia adres URL obrazu tła dla kontrolki panelu.

(Odziedziczone po Panel)
BindingContainer

Pobiera kontrolkę zawierającą powiązanie danych tej kontrolki.

(Odziedziczone po Control)
BorderColor

Pobiera lub ustawia kolor obramowania kontrolki Sieci Web.

(Odziedziczone po WebControl)
BorderStyle

Pobiera lub ustawia styl obramowania kontrolki serwera sieci Web.

(Odziedziczone po WebControl)
BorderWidth

Pobiera lub ustawia szerokość obramowania kontrolki serwera sieci Web.

(Odziedziczone po WebControl)
BrowseHelpText

Pobiera lub ustawia komunikat tekstowy, który nakazuje użytkownikom przejście do lokalizacji pliku opisu.

ChildControlsCreated

Pobiera wartość wskazującą, czy kontrolka podrzędna kontrolki serwera została utworzona.

(Odziedziczone po Control)
ChromeState

Pobiera lub ustawia, czy kontrolka części jest w stanie zminimalizowanym, czy normalnym.

(Odziedziczone po Part)
ChromeType

Pobiera lub ustawia typ obramowania, które ramki kontrolki składników Web Part.

(Odziedziczone po Part)
ClientID

Pobiera identyfikator kontrolki dla znaczników HTML generowanych przez ASP.NET.

(Odziedziczone po Control)
ClientIDMode

Pobiera lub ustawia algorytm używany do generowania wartości ClientID właściwości.

(Odziedziczone po Control)
ClientIDSeparator

Pobiera wartość znaku reprezentującą znak separatora ClientID używany we właściwości .

(Odziedziczone po Control)
Context

HttpContext Pobiera obiekt skojarzony z kontrolką serwera dla bieżącego żądania sieci Web.

(Odziedziczone po Control)
Controls

ControlCollection Pobiera obiekt, który zawiera kontrolki podrzędne dla określonej kontrolki serwera w hierarchii interfejsu użytkownika.

(Odziedziczone po Part)
ControlStyle

Pobiera styl kontrolki serwera sieci Web. Ta właściwość jest używana głównie przez deweloperów kontrolek.

(Odziedziczone po WebControl)
ControlStyleCreated

Pobiera wartość wskazującą Style , czy obiekt został utworzony dla ControlStyle właściwości . Ta właściwość jest używana głównie przez deweloperów kontrolek.

(Odziedziczone po WebControl)
CssClass

Pobiera lub ustawia klasę kaskadowego arkusza stylów (CSS) renderowaną przez kontrolkę serwera sieci Web na kliencie.

(Odziedziczone po WebControl)
DataItemContainer

Pobiera odwołanie do kontenera nazewnictwa, jeśli kontener nazewnictwa implementuje IDataItemContainerelement .

(Odziedziczone po Control)
DataKeysContainer

Pobiera odwołanie do kontenera nazewnictwa, jeśli kontener nazewnictwa implementuje IDataKeysControlelement .

(Odziedziczone po Control)
DefaultButton

Pobiera lub ustawia, jaki przycisk w interfejsie użytkownika jest traktowany jako przycisk domyślny, który odbiera fokus, gdy formularz zawierający przycisk jest renderowany. Ta właściwość nie jest przeznaczona do wywołania z kodu dewelopera strony.

Description

Pobiera lub ustawia krótką frazę, która podsumowuje działanie kontrolki części do użycia w etykietkach narzędzi i katalogach kontrolek części.

(Odziedziczone po Part)
DesignMode

Pobiera wartość wskazującą, czy kontrolka jest używana na powierzchni projektowej.

(Odziedziczone po Control)
Direction

Pobiera lub ustawia kierunek wyświetlania kontrolek zawierających tekst w kontrolce Panel .

(Odziedziczone po Panel)
DisplayTitle

Pobiera ciąg zawierający rzeczywisty bieżący tytuł kontrolki CatalogPart .

(Odziedziczone po CatalogPart)
Enabled

Pobiera lub ustawia wartość wskazującą, czy kontrolka serwera sieci Web jest włączona.

(Odziedziczone po WebControl)
EnableTheming

Pobiera lub ustawia wartość wskazującą, czy motywy mają zastosowanie do tej kontrolki.

(Odziedziczone po WebControl)
EnableViewState

Pobiera lub ustawia wartość wskazującą, czy kontrolka serwera utrzymuje stan widoku, oraz stan widoku wszystkich kontrolek podrzędnych, które zawiera, do klienta żądającego.

(Odziedziczone po Control)
Events

Pobiera listę delegatów programu obsługi zdarzeń dla kontrolki. Ta właściwość jest tylko do odczytu.

(Odziedziczone po Control)
Font

Pobiera właściwości czcionki skojarzone z kontrolką serwera sieci Web.

(Odziedziczone po WebControl)
ForeColor

Pobiera lub ustawia kolor pierwszego planu (zazwyczaj kolor tekstu) kontrolki serwera sieci Web.

(Odziedziczone po WebControl)
GroupingText

Pobiera lub ustawia podpis dla grupy kontrolek znajdujących się w kontrolce panelu.

(Odziedziczone po Panel)
HasAttributes

Pobiera wartość wskazującą, czy kontrolka ma ustawione atrybuty.

(Odziedziczone po WebControl)
HasChildViewState

Pobiera wartość wskazującą, czy kontrolka podrzędna bieżącej kontrolki serwera ma jakiekolwiek zapisane ustawienia stanu widoku.

(Odziedziczone po Control)
Height

Pobiera lub ustawia wysokość kontrolki serwera sieci Web.

(Odziedziczone po WebControl)
HorizontalAlign

Pobiera lub ustawia wyrównanie w poziomie zawartości w panelu.

(Odziedziczone po Panel)
ID

Pobiera lub ustawia identyfikator programowy przypisany do kontrolki serwera.

(Odziedziczone po Control)
IdSeparator

Pobiera znak używany do oddzielania identyfikatorów kontrolek.

(Odziedziczone po Control)
ImportedPartLabelText

Pobiera lub ustawia tekst wyświetlany po zaimportowaniu przez użytkownika pliku opisu do reprezentowania lub opisania zaimportowanej kontrolki w katalogu importowanych kontrolek.

IsChildControlStateCleared

Pobiera wartość wskazującą, czy kontrolki zawarte w tej kontrolce mają stan kontroli.

(Odziedziczone po Control)
IsEnabled

Pobiera wartość wskazującą, czy kontrolka jest włączona.

(Odziedziczone po WebControl)
IsTrackingViewState

Pobiera wartość wskazującą, czy kontrolka serwera zapisuje zmiany w stanie widoku.

(Odziedziczone po Control)
IsViewStateEnabled

Pobiera wartość wskazującą, czy stan widoku jest włączony dla tej kontrolki.

(Odziedziczone po Control)
LoadViewStateByID

Pobiera wartość wskazującą, czy kontrolka uczestniczy w ładowaniu stanu ID widoku zamiast indeksu.

(Odziedziczone po Control)
NamingContainer

Pobiera odwołanie do kontenera nazewnictwa kontrolki serwera, który tworzy unikatową przestrzeń nazw do różnicowania między kontrolkami serwera o tej samej ID wartości właściwości.

(Odziedziczone po Control)
Page

Pobiera odwołanie do Page wystąpienia zawierającego kontrolkę serwera.

(Odziedziczone po Control)
Parent

Pobiera odwołanie do kontrolki nadrzędnej kontrolki serwera w hierarchii kontrolek strony.

(Odziedziczone po Control)
PartImportErrorLabelText

Pobiera lub ustawia komunikat o błędzie wyświetlany w przypadku wystąpienia błędu podczas procesu importowania.

RenderingCompatibility

Pobiera wartość określającą wersję ASP.NET, z którą renderowany kod HTML będzie zgodny.

(Odziedziczone po Control)
ScrollBars

Pobiera lub ustawia widoczność i położenie pasków przewijania w kontrolce Panel .

(Odziedziczone po Panel)
Site

Pobiera informacje o kontenerze, który hostuje bieżącą kontrolkę podczas renderowania na powierzchni projektowej.

(Odziedziczone po Control)
SkinID

Pobiera lub ustawia skórę do zastosowania w kontrolce.

(Odziedziczone po WebControl)
Style

Pobiera kolekcję atrybutów tekstowych, które będą renderowane jako atrybut stylu w zewnętrznym tagu kontrolki serwera sieci Web.

(Odziedziczone po WebControl)
SupportsDisabledAttribute

Pobiera wartość wskazującą, czy kontrolka powinna ustawić disabled atrybut renderowanego elementu HTML na wartość "disabled", gdy właściwość kontrolki IsEnabled ma wartość false.

(Odziedziczone po Panel)
TabIndex

Pobiera lub ustawia indeks tabulacji kontrolki serwera sieci Web.

(Odziedziczone po WebControl)
TagKey

Pobiera wartość odpowiadającą HtmlTextWriterTag tej kontrolce serwera sieci Web. Ta właściwość jest używana głównie przez deweloperów kontrolek.

(Odziedziczone po WebControl)
TagName

Pobiera nazwę tagu kontrolki. Ta właściwość jest używana głównie przez deweloperów kontrolek.

(Odziedziczone po WebControl)
TemplateControl

Pobiera lub ustawia odwołanie do szablonu zawierającego tę kontrolkę.

(Odziedziczone po Control)
TemplateSourceDirectory

Pobiera katalog wirtualny obiektu Page lub UserControl , który zawiera bieżącą kontrolkę serwera.

(Odziedziczone po Control)
Title

Pobiera lub ustawia tytuł wyświetlany na pasku tytułu kontrolki ImportCatalogPart .

ToolTip

Pobiera lub ustawia tekst wyświetlany po umieszczeniu wskaźnika myszy na kontrolce serwera sieci Web.

(Odziedziczone po WebControl)
UniqueID

Pobiera unikatowy, hierarchicznie kwalifikowany identyfikator kontroli serwera.

(Odziedziczone po Control)
UploadButtonText

Pobiera lub ustawia tekst kontrolki Button , która inicjuje przekazywanie pliku opisu.

UploadHelpText

Pobiera lub ustawia tekst komunikatu, który informuje użytkownika, jak przekazać plik opisu.

ValidateRequestMode

Pobiera lub ustawia wartość wskazującą, czy kontrolka sprawdza dane wejściowe klienta z przeglądarki pod kątem potencjalnie niebezpiecznych wartości.

(Odziedziczone po Control)
ViewState

Pobiera słownik informacji o stanie, który pozwala zapisać i przywrócić stan widoku kontroli serwera w wielu żądaniach dla tej samej strony.

(Odziedziczone po Control)
ViewStateIgnoresCase

Pobiera wartość wskazującą, czy StateBag obiekt nie uwzględnia wielkości liter.

(Odziedziczone po Control)
ViewStateMode

Pobiera lub ustawia tryb wyświetlania tej kontrolki.

(Odziedziczone po Control)
Visible

Pobiera lub ustawia wartość wskazującą, czy kontrolka serwera jest renderowana jako interfejs użytkownika na stronie.

(Odziedziczone po Control)
WebPartManager

Pobiera odwołanie do bieżącego WebPartManager wystąpienia klasy.

(Odziedziczone po CatalogPart)
Width

Pobiera lub ustawia szerokość kontrolki serwera sieci Web.

(Odziedziczone po WebControl)
Wrap

Pobiera lub ustawia wartość wskazującą, czy zawartość opakowuje się w panelu.

(Odziedziczone po Panel)
Zone

Pobiera odwołanie do CatalogZoneBase strefy zawierającej kontrolkę CatalogPart .

(Odziedziczone po CatalogPart)

Metody

AddAttributesToRender(HtmlTextWriter)

Dodaje informacje o obrazie tła, wyrównaniu, zawijeniu i kierunku do listy atrybutów do renderowania.

(Odziedziczone po Panel)
AddedControl(Control, Int32)

Wywoływana po dodaniu kontrolki podrzędnej do Controls kolekcji Control obiektu.

(Odziedziczone po Control)
AddParsedSubObject(Object)

Powiadamia kontrolkę serwera, że element , XML lub HTML, został przeanalizowany i dodaje element do obiektu kontrolki ControlCollection serwera.

(Odziedziczone po Control)
ApplyStyle(Style)

Kopiuje wszystkie niepuste elementy określonego stylu do kontrolki Sieci Web, zastępując wszystkie istniejące elementy stylu kontrolki. Ta metoda jest używana głównie przez deweloperów kontrolek.

(Odziedziczone po WebControl)
ApplyStyleSheetSkin(Page)

Stosuje właściwości stylu zdefiniowane w arkuszu stylów strony do kontrolki.

(Odziedziczone po Control)
BeginRenderTracing(TextWriter, Object)

Rozpoczyna śledzenie czasu projektowania danych renderowania.

(Odziedziczone po Control)
BuildProfileTree(String, Boolean)

Zbiera informacje o kontrolce serwera i dostarcza ją do Trace właściwości, która ma być wyświetlana po włączeniu śledzenia dla strony.

(Odziedziczone po Control)
ClearCachedClientID()

Ustawia wartość buforowanej ClientID na null.

(Odziedziczone po Control)
ClearChildControlState()

Usuwa informacje o stanie kontroli dla kontrolek podrzędnych kontrolki serwera.

(Odziedziczone po Control)
ClearChildState()

Usuwa informacje o stanie widoku i stanie kontroli dla wszystkich kontrolek podrzędnych kontrolki serwera.

(Odziedziczone po Control)
ClearChildViewState()

Usuwa informacje o stanie widoku dla wszystkich kontrolek podrzędnych kontrolki serwera.

(Odziedziczone po Control)
ClearEffectiveClientIDMode()

ClientIDMode Ustawia właściwość bieżącego wystąpienia kontrolki i wszystkich kontrolek podrzędnych na Inherit.

(Odziedziczone po Control)
CopyBaseAttributes(WebControl)

Kopiuje właściwości, które nie są hermetyzowane przez Style obiekt z określonej kontrolki serwera sieci Web do kontrolki serwera sieci Web, z którego jest wywoływana ta metoda. Ta metoda jest używana głównie przez deweloperów kontrolek.

(Odziedziczone po WebControl)
CreateChildControls()

Wywoływana przez platformę stron ASP.NET w celu powiadamiania kontrolek serwera, które używają implementacji opartej na kompozycji w celu utworzenia wszelkich kontrolek podrzędnych, które zawierają w ramach przygotowania do publikowania z powrotem lub renderowania.

(Odziedziczone po Control)
CreateControlCollection()

Tworzy nowy ControlCollection obiekt do przechowywania kontrolek podrzędnych (literału i serwera) kontrolki serwera.

(Odziedziczone po Control)
CreateControlStyle()

Tworzy obiekt stylu, który jest używany wewnętrznie przez kontrolkę Panel w celu zaimplementowania wszystkich właściwości pokrewnych stylu.

(Odziedziczone po Panel)
DataBind()

Wiąże źródło danych z wywołaną kontrolką serwera i wszystkimi jej kontrolkami podrzędnymi.

(Odziedziczone po Part)
DataBind(Boolean)

Wiąże źródło danych z wywołaną kontrolką serwera i wszystkie jego kontrolki podrzędne z opcją zgłaszania zdarzenia DataBinding .

(Odziedziczone po Control)
DataBindChildren()

Wiąże źródło danych z kontrolkami podrzędnymi kontrolki serwera.

(Odziedziczone po Control)
Dispose()

Umożliwia kontrolce serwera przeprowadzenie końcowego czyszczenia przed zwolnieniem z pamięci.

(Odziedziczone po Control)
EndRenderTracing(TextWriter, Object)

Kończy śledzenie czasu projektowania danych renderowania.

(Odziedziczone po Control)
EnsureChildControls()

Określa, czy kontrolka serwera zawiera kontrolki podrzędne. Jeśli tak nie jest, tworzy kontrolki podrzędne.

(Odziedziczone po Control)
EnsureID()

Tworzy identyfikator kontrolek, które nie mają przypisanego identyfikatora.

(Odziedziczone po Control)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
FindControl(String)

Wyszukuje bieżący kontener nazewnictwa dla kontrolki serwera przy użyciu określonego id parametru.

(Odziedziczone po Control)
FindControl(String, Int32)

Wyszukuje bieżący kontener nazewnictwa dla kontrolki serwera z określoną liczbą id całkowitą określoną w parametrze pathOffset , co ułatwia wyszukiwanie. Nie należy zastąpić tej wersji FindControl metody.

(Odziedziczone po Control)
Focus()

Ustawia fokus wejściowy na kontrolkę.

(Odziedziczone po Control)
GetAvailableWebPartDescriptions()

Zwraca kolekcję opisów dostępnych WebPart kontrolek w wykazie.

GetDesignModeState()

Pobiera bieżący stan CatalogPart strefy nadrzędnej kontrolki.

(Odziedziczone po CatalogPart)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetRouteUrl(Object)

Pobiera adres URL odpowiadający zestawowi parametrów trasy.

(Odziedziczone po Control)
GetRouteUrl(RouteValueDictionary)

Pobiera adres URL odpowiadający zestawowi parametrów trasy.

(Odziedziczone po Control)
GetRouteUrl(String, Object)

Pobiera adres URL odpowiadający zestawowi parametrów trasy i nazwie trasy.

(Odziedziczone po Control)
GetRouteUrl(String, RouteValueDictionary)

Pobiera adres URL odpowiadający zestawowi parametrów trasy i nazwie trasy.

(Odziedziczone po Control)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
GetUniqueIDRelativeTo(Control)

Zwraca prefiksowaną część UniqueID właściwości określonej kontrolki.

(Odziedziczone po Control)
GetWebPart(WebPartDescription)

Zwraca odwołanie do WebPart kontrolki na podstawie wartości w opisie przekazanym do metody .

HasControls()

Określa, czy kontrolka serwera zawiera jakiekolwiek kontrolki podrzędne.

(Odziedziczone po Control)
HasEvents()

Zwraca wartość wskazującą, czy zdarzenia są rejestrowane dla kontrolki, czy jakiekolwiek kontrolki podrzędne.

(Odziedziczone po Control)
IsLiteralContent()

Określa, czy kontrolka serwera zawiera tylko zawartość literału.

(Odziedziczone po Control)
LoadControlState(Object)

Przywraca informacje o stanie kontroli z poprzedniego żądania strony, które zostało zapisane przez metodę SaveControlState() .

(Odziedziczone po Control)
LoadViewState(Object)

Przywraca informacje o stanie widoku z poprzedniego żądania, które zostało zapisane za pomocą SaveViewState() metody .

(Odziedziczone po WebControl)
MapPathSecure(String)

Pobiera ścieżkę fizyczną, z którą jest mapowa ścieżka wirtualna , bezwzględna lub względna.

(Odziedziczone po Control)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MergeStyle(Style)

Kopiuje wszystkie niepuste elementy określonego stylu do kontrolki Sieci Web, ale nie zastąpi żadnych istniejących elementów stylu kontrolki. Ta metoda jest używana głównie przez deweloperów kontrolek.

(Odziedziczone po WebControl)
OnBubbleEvent(Object, EventArgs)

Określa, czy zdarzenie kontroli serwera jest przekazywane w hierarchii kontroli serwera interfejsu użytkownika strony.

(Odziedziczone po Control)
OnDataBinding(EventArgs)

DataBinding Zgłasza zdarzenie.

(Odziedziczone po Control)
OnInit(EventArgs)

Init Zgłasza zdarzenie.

(Odziedziczone po Control)
OnLoad(EventArgs)

Load Zgłasza zdarzenie.

(Odziedziczone po Control)
OnPreRender(EventArgs)

PreRender Zgłasza zdarzenie.

(Odziedziczone po CatalogPart)
OnUnload(EventArgs)

Unload Zgłasza zdarzenie.

(Odziedziczone po Control)
OpenFile(String)

Stream Pobiera element używany do odczytywania pliku.

(Odziedziczone po Control)
RaiseBubbleEvent(Object, EventArgs)

Przypisuje wszystkie źródła zdarzenia i jego informacje do elementu nadrzędnego kontrolki.

(Odziedziczone po Control)
RemovedControl(Control)

Wywoływane po usunięciu kontrolki podrzędnej Controls z kolekcji Control obiektu.

(Odziedziczone po Control)
Render(HtmlTextWriter)

Renderuje kontrolkę dla określonego składnika zapisywania HTML.

(Odziedziczone po WebControl)
RenderBeginTag(HtmlTextWriter)

Renderuje tag otwierania HTML kontrolki Panel do określonego składnika zapisywania.

(Odziedziczone po Panel)
RenderChildren(HtmlTextWriter)

Zwraca zawartość elementów podrzędnych kontrolki serwera do udostępnionego HtmlTextWriter obiektu, który zapisuje zawartość do renderowania na kliencie.

(Odziedziczone po Control)
RenderContents(HtmlTextWriter)

Renderuje zawartość kontrolki dla określonego składnika zapisywania. Ta metoda jest używana głównie przez deweloperów kontrolek.

(Odziedziczone po WebControl)
RenderControl(HtmlTextWriter)

Generuje zawartość serwera kontrolującą podaną HtmlTextWriter obiekt i przechowują informacje o śledzeniu dotyczące kontrolki, jeśli śledzenie jest włączone.

(Odziedziczone po Control)
RenderControl(HtmlTextWriter, ControlAdapter)

Dane wyjściowe kontrolują zawartość serwera w podanym HtmlTextWriter obiekcie przy użyciu podanego ControlAdapter obiektu.

(Odziedziczone po Control)
RenderEndTag(HtmlTextWriter)

Renderuje tag zamykający HTML kontrolki Panel do określonego składnika zapisywania.

(Odziedziczone po Panel)
ResolveAdapter()

Pobiera kartę kontrolną odpowiedzialną za renderowanie określonej kontrolki.

(Odziedziczone po Control)
ResolveClientUrl(String)

Pobiera adres URL, który może być używany przez przeglądarkę.

(Odziedziczone po Control)
ResolveUrl(String)

Konwertuje adres URL na adres, który może być używany przez klienta żądającego.

(Odziedziczone po Control)
SaveControlState()

Zapisuje wszelkie zmiany stanu kontroli serwera, które wystąpiły od czasu opublikowania strony z powrotem na serwerze.

(Odziedziczone po Control)
SaveViewState()

Zapisuje dowolny stan, który został zmodyfikowany po TrackViewState() wywołaniu metody.

(Odziedziczone po WebControl)
SetDesignModeState(IDictionary)

Ustawia dane czasu projektowania dla kontrolki.

(Odziedziczone po CatalogPart)
SetRenderMethodDelegate(RenderMethod)

Przypisuje delegata procedury obsługi zdarzeń, aby renderować kontrolkę serwera i jego zawartość do kontrolki nadrzędnej.

(Odziedziczone po Control)
SetTraceData(Object, Object)

Ustawia dane śledzenia dla śledzenia czasu projektowania danych renderowania przy użyciu klucza danych śledzenia i wartości danych śledzenia.

(Odziedziczone po Control)
SetTraceData(Object, Object, Object)

Ustawia dane śledzenia dla śledzenia czasu projektowania danych renderowania przy użyciu obiektu śledzonego, klucza danych śledzenia i wartości danych śledzenia.

(Odziedziczone po Control)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TrackViewState()

Powoduje, że kontrolka będzie śledzić zmiany stanu widoku, aby można je było przechowywać we właściwości obiektu ViewState .

(Odziedziczone po WebControl)

Zdarzenia

DataBinding

Występuje, gdy kontrolka serwera wiąże się ze źródłem danych.

(Odziedziczone po Control)
Disposed

Występuje, gdy kontrola serwera jest zwalniana z pamięci, co jest ostatnim etapem cyklu życia kontroli serwera, gdy jest żądana strona ASP.NET.

(Odziedziczone po Control)
Init

Występuje, gdy kontrolka serwera jest inicjowana, co jest pierwszym krokiem w jego cyklu życia.

(Odziedziczone po Control)
Load

Występuje, gdy kontrolka serwera jest ładowana do Page obiektu.

(Odziedziczone po Control)
PreRender

Występuje po załadowaniu Control obiektu, ale przed renderowaniem.

(Odziedziczone po Control)
Unload

Występuje, gdy kontrolka serwera jest zwalniana z pamięci.

(Odziedziczone po Control)

Jawne implementacje interfejsu

IAttributeAccessor.GetAttribute(String)

Pobiera atrybut kontrolki sieci Web o określonej nazwie.

(Odziedziczone po WebControl)
IAttributeAccessor.SetAttribute(String, String)

Ustawia atrybut kontrolki Sieci Web na określoną nazwę i wartość.

(Odziedziczone po WebControl)
ICompositeControlDesignerAccessor.RecreateChildControls()

Umożliwia deweloperowi projektanta kontrolki części złożonej ponowne utworzenie kontrolek podrzędnych kontrolki kontrolki na powierzchni projektowej.

(Odziedziczone po Part)
IControlBuilderAccessor.ControlBuilder

Aby uzyskać opis tego członka, zobacz ControlBuilder.

(Odziedziczone po Control)
IControlDesignerAccessor.GetDesignModeState()

Aby uzyskać opis tego członka, zobacz GetDesignModeState().

(Odziedziczone po Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Aby uzyskać opis tego członka, zobacz SetDesignModeState(IDictionary).

(Odziedziczone po Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Aby uzyskać opis tego członka, zobacz SetOwnerControl(Control).

(Odziedziczone po Control)
IControlDesignerAccessor.UserData

Aby uzyskać opis tego członka, zobacz UserData.

(Odziedziczone po Control)
IDataBindingsAccessor.DataBindings

Aby uzyskać opis tego członka, zobacz DataBindings.

(Odziedziczone po Control)
IDataBindingsAccessor.HasDataBindings

Aby uzyskać opis tego członka, zobacz HasDataBindings.

(Odziedziczone po Control)
IExpressionsAccessor.Expressions

Aby uzyskać opis tego członka, zobacz Expressions.

(Odziedziczone po Control)
IExpressionsAccessor.HasExpressions

Aby uzyskać opis tego członka, zobacz HasExpressions.

(Odziedziczone po Control)
IParserAccessor.AddParsedSubObject(Object)

Aby uzyskać opis tego członka, zobacz AddParsedSubObject(Object).

(Odziedziczone po Control)

Metody rozszerzania

FindDataSourceControl(Control)

Zwraca źródło danych skojarzone z kontrolką danych dla określonej kontrolki.

FindFieldTemplate(Control, String)

Zwraca szablon pola dla określonej kolumny w kontenerze nazewnictwa określonej kontrolki.

FindMetaTable(Control)

Zwraca obiekt metatable dla kontrolki zawierającej dane.

GetDefaultValues(INamingContainer)

Pobiera kolekcję wartości domyślnych dla określonej kontrolki danych.

GetMetaTable(INamingContainer)

Pobiera metadane tabeli dla określonej kontrolki danych.

SetMetaTable(INamingContainer, MetaTable)

Ustawia metadane tabeli dla określonej kontrolki danych.

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

Ustawia metadane tabeli i domyślne mapowanie wartości dla określonej kontrolki danych.

SetMetaTable(INamingContainer, MetaTable, Object)

Ustawia metadane tabeli i domyślne mapowanie wartości dla określonej kontrolki danych.

TryGetMetaTable(INamingContainer, MetaTable)

Określa, czy metadane tabeli są dostępne.

EnableDynamicData(INamingContainer, Type)

Włącza zachowanie danych dynamicznych dla określonej kontrolki danych.

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

Włącza zachowanie danych dynamicznych dla określonej kontrolki danych.

EnableDynamicData(INamingContainer, Type, Object)

Włącza zachowanie danych dynamicznych dla określonej kontrolki danych.

Dotyczy

Zobacz też