DeclarativeCatalogPart 클래스

정의

개발자가 WebPart 의 카탈로그 또는 다른 서버 컨트롤을 선언적인 페이지 지속성 형식으로 웹 페이지에 추가할 수 있습니다. 이 클래스는 상속될 수 없습니다.

public ref class DeclarativeCatalogPart sealed : System::Web::UI::WebControls::WebParts::CatalogPart
public sealed class DeclarativeCatalogPart : System.Web.UI.WebControls.WebParts.CatalogPart
type DeclarativeCatalogPart = class
    inherit CatalogPart
Public NotInheritable Class DeclarativeCatalogPart
Inherits CatalogPart
상속
DeclarativeCatalogPart

예제

다음 코드 예제를 사용 하는 방법을 보여 줍니다.는 DeclarativeCatalogPart 웹 페이지에서 선언적으로 컨트롤입니다. 이 예제에는 다음 네 부분이 있습니다.

  • 웹 파트 페이지의 디스플레이 모드를 변경할 수 있게 해 주는 사용자 정의 컨트롤입니다.

  • 컨트롤과 컨트롤이 CatalogZone 포함된 웹 페이지입니다 DeclarativeCatalogPart .

  • 두 개의 사용자 지정 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=" 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=" 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>

코드 예제의 두 번째 부분은 웹 페이지입니다. 페이지 맨 위에는 사용자 Register 정의 컨트롤에 대한 지시문과 두 개의 사용자 지정 WebPart 컨트롤이 포함된 컴파일된 구성 요소에 대한 지시문이 있습니다. 페이지에는 이 항목의 설명 섹션에 DeclarativeCatalogPart 설명된 대로 선언적 요소의 적절한 계층 구조 내에 중첩된 컨트롤에 대한 선언적 참조가 있습니다. <asp:declarativecatalogpart> 요소에는 요소가 포함 <webpartstemplate> 되며, 이 요소에는 표준 ASP.NET Calendar 컨트롤과 두 개의 사용자 지정 WebPart 컨트롤에 대한 참조가 포함됩니다. 이러한 컨트롤은 사용자가 카탈로그에서 선택할 수 있는 컨트롤입니다. 페이지에는 페이지에 선언된 컨트롤과 PropertyGridEditorPart 함께 편집 기능도 포함되어 있습니다. 이 컨트롤을 사용하면 사용자가 페이지에 추가된 후 및 사용자가 페이지를 편집 모드로 전환한 후 사용자 지정 WebPart 컨트롤에서 특정 속성을 편집할 수 있습니다.

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head id="Head1" runat="server">
    <title>
      DeclarativeCatalogPart 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>
          <asp:BulletedList ID="BulletedList1" 
            Runat="server"
            DisplayMode="HyperLink"
            Title="Favorites">
            <asp:ListItem Value="http://msdn.microsoft.com">
              MSDN
            </asp:ListItem>
            <asp:ListItem Value="http://www.asp.net">
              ASP.NET
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
              MSN
            </asp:ListItem>
          </asp:BulletedList>
        </zonetemplate>
      </asp:webpartzone> 
      <asp:CatalogZone ID="CatalogZone1" runat="server">
        <ZoneTemplate>
          <asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1"  
            runat="server" 
            Title="Web Parts Catalog"
            ChromeType="TitleOnly" 
            Description="Contains a user control with Web Parts and 
              an ASP.NET Calendar control.">
            <WebPartsTemplate>
              <asp:Calendar ID="Calendar1" runat="server" 
                Title="My Calendar" 
                Description="ASP.NET Calendar control used as a personal calendar." />
              <aspSample:UserInfoWebPart 
                runat="server"   
                id="userinfo1" 
                title = "User Information WebPart"
                Description ="Contains custom, editable user information 
                  for display on a page." />
              <aspSample:TextDisplayWebPart 
                runat="server"   
                id="TextDisplayWebPart1" 
                title = "Text Display WebPart" 
                Description="Contains a label that users can dynamically update." />
            </WebPartsTemplate>              
          </asp:DeclarativeCatalogPart>
        </ZoneTemplate>
      </asp:CatalogZone>
      <asp:EditorZone ID="EditorZone1" runat="server">
      <ZoneTemplate>
        <asp:PropertyGridEditorPart ID="PropertyGridEditorPart1" runat="server" />
      </ZoneTemplate>
      </asp:EditorZone> 
    </form>
  </body>
</html>
<%@ page language="VB" %>
<%@ register TagPrefix="uc1" 
  TagName="DisplayModeMenuVB" 
  Src="DisplayModeMenuVB.ascx" %>
<%@ register tagprefix="aspSample" 
  Namespace="Samples.AspNet.VB.Controls" 
  Assembly="UserInfoWebPartVB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>
      DeclarativeCatalogPart 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>
          <asp:BulletedList ID="BulletedList1" 
            Runat="server"
            DisplayMode="HyperLink"
            Title="Favorites">
            <asp:ListItem Value="http://msdn.microsoft.com">
              MSDN
            </asp:ListItem>
            <asp:ListItem Value="http://www.asp.net">
              ASP.NET
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
              MSN
            </asp:ListItem>
          </asp:BulletedList>
        </zonetemplate>
      </asp:webpartzone> 
      <asp:CatalogZone ID="CatalogZone1" runat="server">
        <ZoneTemplate>
          <asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1"  
            runat="server" 
            Title="Web Parts Catalog"
            ChromeType="TitleOnly" 
            Description="Contains a user control with Web Parts and 
              an ASP.NET Calendar control.">
            <WebPartsTemplate>
              <asp:Calendar ID="Calendar1" runat="server" 
                Title="My Calendar" 
                Description="ASP.NET Calendar control used as a personal calendar." />
              <aspSample:UserInfoWebPart 
                runat="server"   
                id="userinfo1" 
                title = "User Information WebPart"
                Description ="Contains custom, editable user information 
                  for display on a page." />
              <aspSample:TextDisplayWebPart 
                runat="server"   
                id="TextDisplayWebPart1" 
                title = "Text Display WebPart" 
                Description="Contains a label that users can dynamically update." />
            </WebPartsTemplate>              
          </asp:DeclarativeCatalogPart>
        </ZoneTemplate>
      </asp:CatalogZone>
      <asp:EditorZone ID="EditorZone1" runat="server">
      <ZoneTemplate>
        <asp:PropertyGridEditorPart ID="PropertyGridEditorPart1" runat="server" />
      </ZoneTemplate>
      </asp:EditorZone> 
    </form>
  </body>
</html>

코드 예제의 세 번째 부분은 두 WebPart 컨트롤의 소스 코드입니다. 이러한 컨트롤의 일부 속성은 특성으로 WebBrowsable 표시됩니다. 이렇게 하면 컨트롤이 PropertyGridEditorPart 편집 모드에 있을 때 사용자가 해당 속성을 편집할 수 있도록 UI(사용자 인터페이스)를 동적으로 생성할 수 있습니다. 또한 속성은 특성으로 WebDisplayName 표시되어 편집 UI의 각 컨트롤 옆에 표시되는 레이블의 텍스트를 지정합니다.

코드 예제를 실행하려면 이 소스 코드를 컴파일해야 합니다. 명시적으로 컴파일하고 결과 어셈블리를 웹 사이트의 Bin 폴더 또는 전역 어셈블리 캐시에 넣을 수 있습니다. 또는 소스 코드를 사이트의 App_Code 폴더에 배치하여 런타임에 동적으로 컴파일할 수 있습니다. 두 가지 컴파일 방법을 모두 보여 주는 연습은 연습: 사용자 지정 웹 서버 컨트롤 개발 및 사용을 참조하세요.

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's 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 PetNameLabel;
    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);

      PetNameLabel = new Label();
      PetNameLabel.Text = this.PetName;
      SetControlAttributes(PetNameLabel);

      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();
      PetNameLabel.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 = 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's 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 PetNameLabel 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)

      PetNameLabel = New Label()
      PetNameLabel.Text = Me.PetName
      SetControlAttributes(PetNameLabel)

      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()
      PetNameLabel.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 input.Text <> String.Empty Then
        _contentText = input.Text + "<br />"
        input.Text = String.Empty
        DisplayContent.Text = Me.ContentText
      End If

    End Sub

  End Class

End Namespace

브라우저에서 페이지를 로드할 때 표시 모드 드롭다운 목록 컨트롤에서 카탈로그 모드를 선택하여 카탈로그 모드로 전환합니다. 카탈로그 모드에서는 페이지에 추가할 수 있는 컨트롤을 볼 수 있습니다. 세 컨트롤을 모두 추가한 다음 표시 모드 드롭다운 목록을 사용하여 페이지를 찾아보기 모드로 반환합니다. 세 가지 컨트롤이 페이지에 나타납니다. 표시 모드 드롭다운 목록을 사용하고 페이지를 편집 모드로 전환하는 경우 사용자 정보 웹 파트 컨트롤의 제목 표시줄에서 동사 메뉴(아래쪽 화살표)를 클릭하고 편집을 클릭하여 컨트롤을 편집할 수 있습니다. 편집 UI가 표시되면 컨트롤을 PropertyGridEditorPart 볼 수 있습니다. 컨트롤이 특성으로 표시된 클래스의 각 속성에 UserInfoWebPart 대해 WebBrowsable 렌더링됩니다. 편집 UI를 변경하고 적용 단추를 클릭하면 표시 모드 드롭다운 목록을 사용하여 페이지를 반환하여 모드를 찾아보고 편집 변경 내용의 전체 효과를 볼 수 있습니다.

설명

웹 파트 컨트롤 집합에 도구 지향 영역이 있는 것처럼(자세한 내용은 클래스 개요 참조 ToolZone ), 도구 지향 Part 컨트롤이 있으며 이러한 각 컨트롤은 특정 유형의 도구 영역에 있어야 합니다. 웹 파트 컨트롤 집합의 도구 지향 파트 컨트롤에는 다음과 같은 두 가지 특징이 있습니다.

  • 최종 사용자가 웹 파트 페이지에서 컨트롤을 개인 설정할 수 있도록 하는 도우미 컨트롤입니다.

  • 특정 디스플레이 모드에서만 표시됩니다.

DeclarativeCatalogPart 는 웹 파트 컨트롤 집합과 CatalogZoneBase 함께 제공되는 영역과 같은 영역 형식에 CatalogZone 있어야 하는 파트 컨트롤입니다. DeclarativeCatalogPart 웹 페이지가 카탈로그 표시 모드에 있는 경우에만 컨트롤이 표시됩니다.

이 컨트롤은 DeclarativeCatalogPart 개발자가 웹 페이지의 카탈로그에 선언적으로 서버 컨트롤 집합을 추가하는 방법을 제공합니다. 웹 파트 컨트롤 집합의 카탈로그는 단순히 페이지가 카탈로그 표시 모드에 있을 때 표시되는 또는 다른 서버 컨트롤의 WebPart 목록입니다. 사용자는 목록에서 컨트롤을 선택하고 웹 페이지에 추가할 수 있으며, 이를 통해 사용자는 페이지의 컨트롤 집합과 기능을 변경할 수 있습니다.

참고

사용자는 카탈로그에서 동일한 컨트롤의 여러 인스턴스를 웹 페이지에 추가할 수 있습니다.

컨트롤을 DeclarativeCatalogPart 사용하여 서버 컨트롤 카탈로그를 만들면 코딩이 필요하지 않다는 장점이 있습니다. 페이지 개발자는 완전히 선언적(또는 페이지 지속성) 형식으로 컨트롤을 사용할 수 있으므로 컨트롤의 이름입니다.

컨트롤에는 DeclarativeCatalogPart 개발자가 전체 사이트에서 사용할 수 있는 컨트롤 카탈로그를 설정할 수 있는 유용한 속성이 있습니다. 개발자는 컨트롤 내에서 개별 서버 컨트롤을 DeclarativeCatalogPart 선언하는 대신 카탈로그에 있어야 하는 서버 컨트롤 목록을 포함하는 사용자 컨트롤의 경로로 속성 값을 설정할 WebPartsListUserControlPath 수 있습니다. 런타임에 사용자 컨트롤에서 참조되는 서버 컨트롤이 카탈로그에 로드됩니다. 이러한 방식으로 여러 페이지 또는 사이트에서 동일한 사용자 컨트롤을 참조하여 카탈로그를 만들 수 있습니다. 사용자 컨트롤의 서버 컨트롤 목록이 업데이트되면 사용자 컨트롤에 따라 모든 카탈로그가 업데이트됩니다.

클래스에는 DeclarativeCatalogPart 상속된 속성을 재정의하는 여러 공용 속성이 있습니다. 이러한 속성의 대부분은 실제로 컨트롤을 렌더링하는 데 사용되지 않습니다. 이러한 특성은 Microsoft Visual Studio 2005와 같은 디자인 도구에서 숨기도록 특수 코드 특성을 설정할 수 있도록 재정의됩니다. 이러한 숨겨진 속성은 렌더링에 영향을 주지 않으므로 사용하지 않아야 합니다. Visual Studio의 IntelliSense 및 속성 창에서 숨겨져 있다는 사실은 개발자가 실수로 사용하지 않도록 하는 데 도움이 됩니다. 이러한 모든 숨겨진 속성은 해당 도움말 topics 다음과 같이 표시됩니다.

클래스에는 DeclarativeCatalogPart 여러 메서드도 있습니다. 메서드는 GetAvailableWebPartDescriptions 카탈로그의 WebPartDescriptionWebPart 컨트롤에 대한 개체를 검색하여 컨트롤이 instance 만들지 않고도 각 서버 컨트롤에 대한 정보를 표시할 수 있도록 DeclarativeCatalogPart 합니다. 또 다른 메서드는 메서드입니다 GetWebPart . 이 메서드는 메서드에 전달된 설명에 따라 특정 WebPart 컨트롤의 instance 가져옵니다.

참고

접근성을 향상시키기 위해 컨트롤은 DeclarativeCatalogPart 요소 내에서 <fieldset> 렌더링됩니다. 요소는 <fieldset> 컨트롤에서 DeclarativeCatalogPart 편집하는 데 사용되는 관련 컨트롤 집합을 그룹화하고 시각적 사용자 에이전트(예: 일반 웹 브라우저) 및 음성 지향 사용자 에이전트(예: 화면 읽기 소프트웨어)에 대한 해당 컨트롤 간에 탭 탐색을 용이하게 합니다.

생성자

DeclarativeCatalogPart()

클래스의 새 인스턴스를 초기화합니다.

속성

AccessKey

웹 파트 컨트롤 집합은 DeclarativeCatalogPart 컨트롤을 렌더링할 때 이 상속된 속성을 사용하지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

Adapter

컨트롤에 대한 브라우저별 어댑터를 가져옵니다.

(다음에서 상속됨 Control)
AppRelativeTemplateSourceDirectory

이 컨트롤이 포함된 Page 또는 UserControl 개체의 애플리케이션 상대 가상 디렉터리를 가져오거나 설정합니다.

(다음에서 상속됨 Control)
Attributes

컨트롤의 속성과 일치하지 않는 임의의 특성(렌더링하는 경우에만 해당)의 컬렉션을 가져옵니다.

(다음에서 상속됨 WebControl)
BackColor

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

BackImageUrl

웹 파트 컨트롤 집합은 DeclarativeCatalogPart 컨트롤을 렌더링할 때 이 상속된 속성을 사용하지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

BindingContainer

이 컨트롤의 데이터 바인딩이 포함된 컨트롤을 가져옵니다.

(다음에서 상속됨 Control)
BorderColor

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

BorderStyle

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

BorderWidth

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

ChildControlsCreated

서버 컨트롤의 자식 컨트롤이 만들어졌는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Control)
ChromeState

파트 컨트롤이 최소화된 상태인지 또는 표준 상태인지 여부를 가져오거나 설정합니다.

(다음에서 상속됨 Part)
ChromeType

웹 파트 컨트롤의 프레임이 되는 테두리의 형태를 가져오거나 설정합니다.

(다음에서 상속됨 Part)
ClientID

ASP.NET에서 생성하는 HTML 태그의 컨트롤 ID를 가져옵니다.

(다음에서 상속됨 Control)
ClientIDMode

ClientID 속성의 값을 생성하는 데 사용되는 알고리즘을 가져오거나 설정합니다.

(다음에서 상속됨 Control)
ClientIDSeparator

ClientID 속성에 사용된 구분 문자를 나타내는 문자 값을 가져옵니다.

(다음에서 상속됨 Control)
Context

현재 웹 요청에 대한 서버 컨트롤과 관련된 HttpContext 개체를 가져옵니다.

(다음에서 상속됨 Control)
Controls

사용자 인터페이스 계층 구조에서 지정된 서버 컨트롤의 자식 컨트롤을 포함하는 ControlCollection 개체를 가져옵니다.

(다음에서 상속됨 Part)
ControlStyle

웹 서버 컨트롤의 스타일을 가져옵니다. 이 속성은 주로 컨트롤 개발자가 사용합니다.

(다음에서 상속됨 WebControl)
ControlStyleCreated

Style 개체가 ControlStyle 속성에 대해 만들어졌는지 여부를 나타내는 값을 가져옵니다. 이 속성은 주로 컨트롤 개발자가 사용합니다.

(다음에서 상속됨 WebControl)
CssClass

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

DataItemContainer

명명 컨테이너가 IDataItemContainer를 구현할 경우 명명 컨테이너에 대한 참조를 가져옵니다.

(다음에서 상속됨 Control)
DataKeysContainer

명명 컨테이너가 IDataKeysControl를 구현할 경우 명명 컨테이너에 대한 참조를 가져옵니다.

(다음에서 상속됨 Control)
DefaultButton

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

Description

파트 컨트롤의 도구 설명과 카탈로그에 사용하기 위해 파트 컨트롤의 용도를 요약한 간략한 문구를 가져오거나 설정합니다.

(다음에서 상속됨 Part)
DesignMode

디자인 화면에서 컨트롤이 사용 중인지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Control)
Direction

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

DisplayTitle

CatalogPart 컨트롤의 실제 현재 제목이 들어 있는 문자열을 가져옵니다.

(다음에서 상속됨 CatalogPart)
Enabled

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

EnableTheming

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

EnableViewState

서버 컨트롤이 해당 뷰 상태와 포함하고 있는 모든 자식 컨트롤의 뷰 상태를, 요청하는 클라이언트까지 유지하는지 여부를 나타내는 값을 가져오거나 설정합니다.

(다음에서 상속됨 Control)
Events

컨트롤에 대한 이벤트 처리기 대리자의 목록을 가져옵니다. 이 속성은 읽기 전용입니다.

(다음에서 상속됨 Control)
Font

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

ForeColor

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

GroupingText

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

HasAttributes

컨트롤에 특성 집합이 있는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 WebControl)
HasChildViewState

현재 서버 컨트롤의 자식 컨트롤에 저장된 뷰 상태 설정 값이 있는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Control)
Height

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위해 재정의됩니다.

HorizontalAlign

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위한 목적으로만 재정의됩니다.

ID

서버 컨트롤에 할당된 프로그래밍 ID를 가져오거나 설정합니다.

(다음에서 상속됨 Control)
IdSeparator

컨트롤 식별자를 구분하는 데 사용되는 문자를 가져옵니다.

(다음에서 상속됨 Control)
IsChildControlStateCleared

이 컨트롤에 포함된 컨트롤이 컨트롤 상태를 가지는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Control)
IsEnabled

컨트롤을 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 WebControl)
IsTrackingViewState

서버 컨트롤에서 해당 뷰 상태의 변경 사항을 저장하는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Control)
IsViewStateEnabled

이 컨트롤의 뷰 상태를 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Control)
LoadViewStateByID

인덱스 대신 ID별로 뷰 상태를 로드할 때 컨트롤이 참여하는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Control)
NamingContainer

동일한 ID 속성 값을 사용하는 서버 컨트롤을 구별하기 위해 고유의 네임스페이스를 만드는 서버 컨트롤의 명명 컨테이너에 대한 참조를 가져옵니다.

(다음에서 상속됨 Control)
Page

서버 컨트롤이 들어 있는 Page 인스턴스에 대한 참조를 가져옵니다.

(다음에서 상속됨 Control)
Parent

페이지 컨트롤 계층 구조에서 서버 컨트롤의 부모 컨트롤에 대한 참조를 가져옵니다.

(다음에서 상속됨 Control)
RenderingCompatibility

렌더링된 HTML이 호환될 ASP.NET 버전을 지정하는 값을 가져옵니다.

(다음에서 상속됨 Control)
ScrollBars

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위한 목적으로만 재정의됩니다.

Site

디자인 화면에서 렌더링될 때 현재 컨트롤을 호스팅하는 컨테이너 관련 정보를 가져옵니다.

(다음에서 상속됨 Control)
SkinID

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위한 목적으로만 재정의됩니다.

Style

웹 서버 컨트롤의 외부 태그에서 스타일 특성으로 렌더링할 텍스트 특성의 컬렉션을 가져옵니다.

(다음에서 상속됨 WebControl)
SupportsDisabledAttribute

컨트롤의 IsEnabled 속성이 false인 경우 컨트롤이 렌더링된 HTML 요소의 disabled 특성을 "disabled"로 설정할지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Panel)
TabIndex

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위한 목적으로만 재정의됩니다.

TagKey

이 웹 서버 컨트롤에 해당하는 HtmlTextWriterTag 값을 가져옵니다. 이 속성은 주로 컨트롤 개발자가 사용합니다.

(다음에서 상속됨 WebControl)
TagName

컨트롤 태그의 이름을 가져옵니다. 이 속성은 주로 컨트롤 개발자가 사용합니다.

(다음에서 상속됨 WebControl)
TemplateControl

이 컨트롤이 포함된 템플릿의 참조를 가져오거나 설정합니다.

(다음에서 상속됨 Control)
TemplateSourceDirectory

Page 또는 현재 서버 컨트롤이 들어 있는 UserControl의 가상 디렉터리를 가져옵니다.

(다음에서 상속됨 Control)
Title

컨트롤의 제목 표시줄에 나타나는 제목을 가져오거나 설정합니다.

ToolTip

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위한 목적으로만 재정의됩니다.

UniqueID

서버 컨트롤에 대해 계층적으로 정규화된 고유 식별자를 가져옵니다.

(다음에서 상속됨 Control)
ValidateRequestMode

잠재적으로 위험한 값이 있는지 확인하기 위해 컨트롤에서 브라우저의 클라이언트 입력을 검사하는지 여부를 나타내는 값을 가져오거나 설정합니다.

(다음에서 상속됨 Control)
ViewState

같은 페이지에 대한 여러 개의 요청 전반에 서버 컨트롤의 뷰 상태를 저장하고 복원할 수 있도록 하는 상태 정보 사전을 가져옵니다.

(다음에서 상속됨 Control)
ViewStateIgnoresCase

StateBag 개체가 대/소문자를 구분하는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Control)
ViewStateMode

이 컨트롤의 뷰 상태 모드를 가져오거나 설정합니다.

(다음에서 상속됨 Control)
Visible

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위한 목적으로만 재정의됩니다.

WebPartManager

WebPartManager 클래스의 현재 인스턴스에 대한 참조를 가져옵니다.

(다음에서 상속됨 CatalogPart)
WebPartsListUserControlPath

카탈로그에 대한 WebPart 또는 다른 서버 컨트롤의 목록이 들어 있는 사용자 정의 컨트롤의 경로를 가져오거나 설정합니다.

WebPartsTemplate

카탈로그에 선언된 WebPart 컨트롤이 들어 있는 템플릿에 대한 참조를 가져오거나 설정합니다.

Width

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위한 목적으로만 재정의됩니다.

Wrap

이 상속된 속성은 DeclarativeCatalogPart 컨트롤에서 사용되지 않습니다. 속성은 Microsoft Visual Studio 2005 디자이너 도구에 표시되지 않도록 하기 위한 목적으로만 재정의됩니다.

Zone

CatalogZoneBase 컨트롤이 들어 있는 CatalogPart 영역에 대한 참조를 가져옵니다.

(다음에서 상속됨 CatalogPart)

메서드

AddAttributesToRender(HtmlTextWriter)

배경 이미지, 맞춤, 줄 바꿈 및 방향에 대한 정보를 렌더링할 특성 목록에 추가합니다.

(다음에서 상속됨 Panel)
AddedControl(Control, Int32)

자식 컨트롤이 Control 개체의 Controls 컬렉션에 추가된 후 호출됩니다.

(다음에서 상속됨 Control)
AddParsedSubObject(Object)

XML 또는 HTML 요소가 구문 분석되었음을 서버 컨트롤에 알리고 서버 컨트롤의 ControlCollection 개체에 요소를 추가합니다.

(다음에서 상속됨 Control)
ApplyStyle(Style)

지정된 스타일의 비어 있지 않은 요소를 웹 컨트롤에 복사하고 컨트롤의 기존 스타일 요소를 덮어씁니다. 이 메서드는 주로 컨트롤 개발자가 사용합니다.

(다음에서 상속됨 WebControl)
ApplyStyleSheetSkin(Page)

페이지 스타일시트에 정의된 스타일 속성을 컨트롤에 적용합니다.

(다음에서 상속됨 Control)
BeginRenderTracing(TextWriter, Object)

렌더링 데이터의 디자인 타임 추적을 시작합니다.

(다음에서 상속됨 Control)
BuildProfileTree(String, Boolean)

서버 컨트롤에 대한 정보를 수집하고, 페이지에 대해 추적이 활성화된 경우 표시할 Trace 속성에 이 정보를 전달합니다.

(다음에서 상속됨 Control)
ClearCachedClientID()

캐시된 ClientID 값을 null로 설정합니다.

(다음에서 상속됨 Control)
ClearChildControlState()

서버 컨트롤의 자식 컨트롤에 대한 컨트롤 상태 정보를 삭제합니다.

(다음에서 상속됨 Control)
ClearChildState()

서버 컨트롤의 모든 자식 컨트롤에 대한 뷰 상태 정보와 컨트롤 상태 정보를 삭제합니다.

(다음에서 상속됨 Control)
ClearChildViewState()

서버 컨트롤의 모든 자식 컨트롤에 대한 뷰 상태 정보를 삭제합니다.

(다음에서 상속됨 Control)
ClearEffectiveClientIDMode()

현재 컨트롤 인스턴스 및 자식 컨트롤의 ClientIDMode 속성을 Inherit로 설정합니다.

(다음에서 상속됨 Control)
CopyBaseAttributes(WebControl)

Style 개체에 캡슐화하지 않은 속성을 지정된 웹 서버 컨트롤에서 이 메서드가 호출된 원본 웹 서버 컨트롤에 복사합니다. 이 메서드는 주로 컨트롤 개발자에 의해 사용됩니다.

(다음에서 상속됨 WebControl)
CreateChildControls()

다시 게시 또는 렌더링하기 위한 준비 작업으로, 포함된 자식 컨트롤을 만들도록 컴퍼지션 기반 구현을 사용하는 서버 컨트롤에 알리기 위해 ASP.NET 페이지 프레임워크에 의해 호출됩니다.

(다음에서 상속됨 Control)
CreateControlCollection()

서버 컨트롤의 자식 컨트롤(리터럴 및 서버)을 보유할 새 ControlCollection 개체를 만듭니다.

(다음에서 상속됨 Control)
CreateControlStyle()

Panel 컨트롤에서 모든 스타일 관련 속성을 구현하기 위해 내부적으로 사용되는 스타일 개체를 만듭니다.

(다음에서 상속됨 Panel)
DataBind()

호출된 서버 컨트롤과 모든 해당 자식 컨트롤에 데이터 원본을 바인딩합니다.

(다음에서 상속됨 Part)
DataBind(Boolean)

DataBinding 이벤트를 발생시키는 옵션을 사용하여, 호출된 서버 컨트롤과 모든 자식 컨트롤에 데이터 소스를 바인딩합니다.

(다음에서 상속됨 Control)
DataBindChildren()

데이터 소스를 서버 컨트롤의 자식 컨트롤에 바인딩합니다.

(다음에서 상속됨 Control)
Dispose()

서버 컨트롤이 메모리에서 해제되기 전에 해당 서버 컨트롤에서 최종 정리 작업을 수행하도록 합니다.

(다음에서 상속됨 Control)
EndRenderTracing(TextWriter, Object)

렌더링 데이터의 디자인 타임 추적을 종료합니다.

(다음에서 상속됨 Control)
EnsureChildControls()

서버 컨트롤에 자식 컨트롤이 있는지 확인합니다. 서버 컨트롤에 자식 컨트롤이 없으면 자식 컨트롤을 만듭니다.

(다음에서 상속됨 Control)
EnsureID()

ID가 할당되지 않은 컨트롤의 ID를 만듭니다.

(다음에서 상속됨 Control)
Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
FindControl(String)

지정된 id 매개 변수를 사용하여 서버 컨트롤의 현재 명명 컨테이너를 검색합니다.

(다음에서 상속됨 Control)
FindControl(String, Int32)

현재 명명 컨테이너에서 특정 id와 함께 pathOffset 매개 변수에 지정된 검색용 정수를 사용하여 서버 컨트롤을 검색합니다. 이 버전의 FindControl 메서드를 재정의해서는 안됩니다.

(다음에서 상속됨 Control)
Focus()

컨트롤에 입력 포커스를 설정합니다.

(다음에서 상속됨 Control)
GetAvailableWebPartDescriptions()

카탈로그에서 사용할 수 있는 WebPart 컨트롤에 대한 설명의 컬렉션을 반환합니다.

GetDesignModeState()

CatalogPart 컨트롤의 부모 영역에 대한 현재 상태를 검색합니다.

(다음에서 상속됨 CatalogPart)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetRouteUrl(Object)

루트 매개 변수 집합에 해당하는 URL을 가져옵니다.

(다음에서 상속됨 Control)
GetRouteUrl(RouteValueDictionary)

루트 매개 변수 집합에 해당하는 URL을 가져옵니다.

(다음에서 상속됨 Control)
GetRouteUrl(String, Object)

루트 매개 변수 집합 및 루트 이름에 해당하는 URL을 가져옵니다.

(다음에서 상속됨 Control)
GetRouteUrl(String, RouteValueDictionary)

루트 매개 변수 집합 및 루트 이름에 해당하는 URL을 가져옵니다.

(다음에서 상속됨 Control)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
GetUniqueIDRelativeTo(Control)

지정된 컨트롤의 UniqueID 속성에서 접두사 부분을 반환합니다.

(다음에서 상속됨 Control)
GetWebPart(WebPartDescription)

메서드에 전달된 설명 값을 기준으로 WebPart 컨트롤에 대한 참조를 반환합니다.

HasControls()

서버 컨트롤에 자식 컨트롤이 있는지 확인합니다.

(다음에서 상속됨 Control)
HasEvents()

이벤트가 컨트롤이나 자식 컨트롤에 등록되었는지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 Control)
IsLiteralContent()

서버 컨트롤에 리터럴 내용만 저장되어 있는지 확인합니다.

(다음에서 상속됨 Control)
LoadControlState(Object)

SaveControlState() 메서드에서 저장한 이전 페이지 요청에서 컨트롤 상태 정보를 복원합니다.

(다음에서 상속됨 Control)
LoadViewState(Object)

SaveViewState() 메서드를 사용하여 저장된 이전 요청에서 보기 상태 정보를 복원합니다.

(다음에서 상속됨 WebControl)
MapPathSecure(String)

가상 경로(절대 또는 상대)가 매핑되는 실제 경로를 가져옵니다.

(다음에서 상속됨 Control)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
MergeStyle(Style)

지정된 스타일의 비어 있지 않은 요소를 웹 컨트롤에 복사하지만 컨트롤의 기존 요소를 덮어쓰지 않습니다. 이 메서드는 주로 컨트롤 개발자에 의해 사용됩니다.

(다음에서 상속됨 WebControl)
OnBubbleEvent(Object, EventArgs)

서버 컨트롤의 이벤트가 페이지의 UI 서버 컨트롤 계층 구조에 전달되었는지 여부를 확인합니다.

(다음에서 상속됨 Control)
OnDataBinding(EventArgs)

DataBinding 이벤트를 발생시킵니다.

(다음에서 상속됨 Control)
OnInit(EventArgs)

Init 이벤트를 발생시킵니다.

(다음에서 상속됨 Control)
OnLoad(EventArgs)

Load 이벤트를 발생시킵니다.

(다음에서 상속됨 Control)
OnPreRender(EventArgs)

PreRender 이벤트를 발생시킵니다.

(다음에서 상속됨 CatalogPart)
OnUnload(EventArgs)

Unload 이벤트를 발생시킵니다.

(다음에서 상속됨 Control)
OpenFile(String)

파일을 읽는 데 사용되는 Stream을 가져옵니다.

(다음에서 상속됨 Control)
RaiseBubbleEvent(Object, EventArgs)

이벤트 소스와 해당 정보를 컨트롤의 부모 컨트롤에 할당합니다.

(다음에서 상속됨 Control)
RemovedControl(Control)

자식 컨트롤이 Control 개체의 Controls 컬렉션에서 제거된 후 호출됩니다.

(다음에서 상속됨 Control)
Render(HtmlTextWriter)

이 컨트롤을 지정된 HTML 작성기에 렌더링합니다.

(다음에서 상속됨 WebControl)
RenderBeginTag(HtmlTextWriter)

지정한 작성기에 Panel 컨트롤의 HTML 여는 태그를 렌더링합니다.

(다음에서 상속됨 Panel)
RenderChildren(HtmlTextWriter)

클라이언트에서 렌더링될 내용을 쓰는 제공된 HtmlTextWriter 개체에 서버 컨트롤 자식의 내용을 출력합니다.

(다음에서 상속됨 Control)
RenderContents(HtmlTextWriter)

지정된 작성기에 컨트롤의 내용을 렌더링합니다. 이 메서드는 주로 컨트롤 개발자에 의해 사용됩니다.

(다음에서 상속됨 WebControl)
RenderControl(HtmlTextWriter)

제공된 HtmlTextWriter 개체로 서버 컨트롤 콘텐츠를 출력하고 추적을 사용하는 경우 컨트롤에 대한 추적 정보를 저장합니다.

(다음에서 상속됨 Control)
RenderControl(HtmlTextWriter, ControlAdapter)

제공된 HtmlTextWriter 개체를 사용하여 제공된 ControlAdapter 개체에 서버 컨트롤 콘텐츠를 출력합니다.

(다음에서 상속됨 Control)
RenderEndTag(HtmlTextWriter)

지정된 작성기에 Panel 컨트롤의 HTML 닫는 태그를 렌더링합니다.

(다음에서 상속됨 Panel)
ResolveAdapter()

지정된 컨트롤을 렌더링하는 컨트롤 어댑터를 가져옵니다.

(다음에서 상속됨 Control)
ResolveClientUrl(String)

브라우저에 사용할 수 있는 URL을 가져옵니다.

(다음에서 상속됨 Control)
ResolveUrl(String)

URL을 요청 클라이언트에서 사용할 수 있는 URL로 변환합니다.

(다음에서 상속됨 Control)
SaveControlState()

페이지가 서버에 다시 게시된 후 발생한 서버 컨트롤 상태의 변경을 저장합니다.

(다음에서 상속됨 Control)
SaveViewState()

TrackViewState() 메서드를 호출한 후 수정된 모든 상태를 저장합니다.

(다음에서 상속됨 WebControl)
SetDesignModeState(IDictionary)

컨트롤에 대한 디자인 타임 데이터를 설정합니다.

(다음에서 상속됨 CatalogPart)
SetRenderMethodDelegate(RenderMethod)

이벤트 처리기 대리자를 할당하여 서버 컨트롤과 그 콘텐츠를 부모 컨트롤로 렌더링합니다.

(다음에서 상속됨 Control)
SetTraceData(Object, Object)

추적 데이터 키와 추적 데이터 값을 사용하여 렌더링 데이터의 디자인 타임 추적을 위한 추적 데이터를 설정합니다.

(다음에서 상속됨 Control)
SetTraceData(Object, Object, Object)

추적 개체, 추적 데이터 키와 추적 데이터 값을 사용하여 렌더링 데이터의 디자인 타임 추적을 위한 추적 데이터를 설정합니다.

(다음에서 상속됨 Control)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
TrackViewState()

컨트롤이 해당 뷰 상태의 변경 내용을 추적하여 개체의 ViewState 속성에 저장할 수 있도록 합니다.

(다음에서 상속됨 WebControl)

이벤트

DataBinding

서버 컨트롤에서 데이터 소스에 바인딩할 때 발생합니다.

(다음에서 상속됨 Control)
Disposed

ASP.NET 페이지가 요청될 때 서버 컨트롤 주기의 마지막 단계로 서버 컨트롤이 메모리에서 해제될 때 발생합니다.

(다음에서 상속됨 Control)
Init

서버 컨트롤 주기의 첫 단계로 서버 컨트롤을 초기화할 때 이 이벤트가 발생합니다.

(다음에서 상속됨 Control)
Load

Page 개체에 서버 컨트롤을 로드할 때 발생합니다.

(다음에서 상속됨 Control)
PreRender

Control 개체가 로드된 후, 렌더링 전에 발생합니다.

(다음에서 상속됨 Control)
Unload

서버 컨트롤이 메모리에서 언로드될 때 발생합니다.

(다음에서 상속됨 Control)

명시적 인터페이스 구현

IAttributeAccessor.GetAttribute(String)

지정한 이름이 있는 웹 컨트롤의 특성을 가져옵니다.

(다음에서 상속됨 WebControl)
IAttributeAccessor.SetAttribute(String, String)

웹 컨트롤의 특성을 지정한 이름과 값으로 설정합니다.

(다음에서 상속됨 WebControl)
ICompositeControlDesignerAccessor.RecreateChildControls()

합성 파트 컨트롤의 디자이너 개발자가 디자인 화면에서 컨트롤의 자식 컨트롤을 다시 만들 수 있습니다.

(다음에서 상속됨 Part)
IControlBuilderAccessor.ControlBuilder

이 멤버에 대한 설명은 ControlBuilder를 참조하세요.

(다음에서 상속됨 Control)
IControlDesignerAccessor.GetDesignModeState()

이 멤버에 대한 설명은 GetDesignModeState()를 참조하세요.

(다음에서 상속됨 Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

이 멤버에 대한 설명은 SetDesignModeState(IDictionary)를 참조하세요.

(다음에서 상속됨 Control)
IControlDesignerAccessor.SetOwnerControl(Control)

이 멤버에 대한 설명은 SetOwnerControl(Control)를 참조하세요.

(다음에서 상속됨 Control)
IControlDesignerAccessor.UserData

이 멤버에 대한 설명은 UserData를 참조하세요.

(다음에서 상속됨 Control)
IDataBindingsAccessor.DataBindings

이 멤버에 대한 설명은 DataBindings를 참조하세요.

(다음에서 상속됨 Control)
IDataBindingsAccessor.HasDataBindings

이 멤버에 대한 설명은 HasDataBindings를 참조하세요.

(다음에서 상속됨 Control)
IExpressionsAccessor.Expressions

이 멤버에 대한 설명은 Expressions를 참조하세요.

(다음에서 상속됨 Control)
IExpressionsAccessor.HasExpressions

이 멤버에 대한 설명은 HasExpressions를 참조하세요.

(다음에서 상속됨 Control)
IParserAccessor.AddParsedSubObject(Object)

이 멤버에 대한 설명은 AddParsedSubObject(Object)를 참조하세요.

(다음에서 상속됨 Control)

확장 메서드

FindDataSourceControl(Control)

지정된 컨트롤에 대한 데이터 컨트롤에 연결된 데이터 소스를 반환합니다.

FindFieldTemplate(Control, String)

지정된 컨트롤의 명명 컨테이너에서 지정된 열에 대한 필드 템플릿을 반환합니다.

FindMetaTable(Control)

상위 데이터 컨트롤에 대한 메타테이블 개체를 반환합니다.

GetDefaultValues(INamingContainer)

지정된 데이터 컨트롤의 기본값에 대한 컬렉션을 가져옵니다.

GetMetaTable(INamingContainer)

지정한 데이터 컨트롤에 대한 테이블 메타데이터를 가져옵니다.

SetMetaTable(INamingContainer, MetaTable)

지정한 데이터 컨트롤에 대한 테이블 메타데이터를 설정합니다.

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

지정된 데이터 컨트롤에 대한 테이블 메타데이터 및 기본값 매핑을 설정합니다.

SetMetaTable(INamingContainer, MetaTable, Object)

지정된 데이터 컨트롤에 대한 테이블 메타데이터 및 기본값 매핑을 설정합니다.

TryGetMetaTable(INamingContainer, MetaTable)

테이블 메타데이터를 사용할 수 있는지 여부를 결정합니다.

EnableDynamicData(INamingContainer, Type)

지정된 데이터 컨트롤에 Dynamic Data 동작을 사용하도록 설정합니다.

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

지정된 데이터 컨트롤에 Dynamic Data 동작을 사용하도록 설정합니다.

EnableDynamicData(INamingContainer, Type, Object)

지정된 데이터 컨트롤에 Dynamic Data 동작을 사용하도록 설정합니다.

적용 대상

추가 정보