ImportCatalogPart 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
- 상속
예제
다음 코드 예제를 사용 ImportCatalogPart 하는 방법에 설명 합니다 선언적이 고 프로그래밍 방식으로 웹 페이지에서 컨트롤입니다. 이 예제에는 다음 네 부분이 있습니다.
웹 파트 페이지의 디스플레이 모드를 변경할 수 있게 해 주는 사용자 정의 컨트롤입니다.
컨트롤과 컨트롤이 CatalogZone 포함된 웹 페이지입니다 ImportCatalogPart .
두 개의 사용자 지정 WebPart 컨트롤이 포함된 소스 코드 파일입니다.
브라우저에서 페이지를 로드할 때 예제가 작동하는 방식에 대한 설명입니다.
이 코드 예제에 첫 번째 부분은 사용자가 웹 페이지의 디스플레이 모드를 변경할 수 있는 사용자 정의 컨트롤입니다. 다음 소스 코드를 파일에 배치하고 이름을 Displaymodemenucs.ascx 또는 Displaymodemenuvb.ascx로 지정해야 합니다(사용 중인 언어에 따라 다름). 표시 모드 및 이 컨트롤의 소스 코드에 대한 설명에 대한 자세한 내용은 연습: 웹 파트 페이지에서 디스플레이 모드 변경을 참조하세요.
<%@ 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 컨트롤이 포함된 컴파일된 구성 요소에 대한 지시문이 있습니다. 페이지에는 선언적 요소의 ImportCatalogPart 적절한 계층 구조 내에 중첩된 컨트롤에 대한 선언적 참조가 있습니다. 또한 요소에 선언적으로 여러 속성 값이 <asp:importcatalogpart>
할당됩니다. 또한 메서드는 Button1_Click
컨트롤의 여러 속성 값을 ImportCatalogPart 업데이트합니다.
페이지의 WebPartZone 컨트롤에서 두 개의 사용자 지정 WebPart 컨트롤이 선언됩니다. 컨트롤에 <aspSample:userinfowebpart>
특성이 exportmode="all"
있습니다. 이 특성은 사용자가 컨트롤에 대한 설명 파일을 내보낼 수 있도록 하는 데 필요하며, 설명 파일을 사용하여 컨트롤을 가져오려는 다른 사용자가 가져올 수 있습니다.
참고
설명 파일을 내보낼 웹 파트 애플리케이션의 사용자가 사용할 수 있도록 WebPart 컨트롤을 추가 하 여 웹 애플리케이션에서 내보내기 기능은 설정할 수도 있습니다는 enableExport="true"
특성을 <webParts>
요소 (합니다 의자식인<system.web>
요소)의 Web.config 파일에 있습니다. 내보내기는 기본적으로 비활성화 되어, 애플리케이션에 대 한 내보내기를 아직 설정 하지 않은 경우 Web.config 파일을 편집 하 고 지금 하므로 합니다.
<%@ 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>
코드 예제의 세 번째 부분은 두 WebPart 컨트롤의 소스 코드입니다. 이러한 컨트롤의 일부 속성은 특성으로 WebBrowsable
표시됩니다. 이렇게 하면 컨트롤이 PropertyGridEditorPart 편집 모드에 있을 때 사용자가 해당 속성을 편집할 수 있도록 UI(사용자 인터페이스)를 동적으로 생성할 수 있습니다. 또한 속성은 특성으로 WebDisplayName
표시되어 편집 UI의 각 컨트롤 옆에 표시되는 레이블의 텍스트를 지정합니다. 코드 예제를 실행하려면 이 소스 코드를 컴파일해야 합니다. 명시적으로 컴파일하고 결과 어셈블리를 웹 사이트의 Bin 폴더 또는 전역 어셈블리 캐시에 넣을 수 있습니다. 또는 소스 코드를 사이트의 App_Code 폴더에 배치하여 런타임에 동적으로 컴파일할 수 있습니다. 이 코드 예제에서는 동적 컴파일을 사용합니다. 두 가지 컴파일 방법을 모두 보여 주는 연습은 연습: 사용자 지정 웹 서버 컨트롤 개발 및 사용을 참조하세요.
라는 TextDisplayWebPart
사용자 지정 컨트롤은 요소를 사용하여 웹 페이지에서 참조됩니다 <aspSample:TextDisplayWebPart>
. 라는 다른 컨트롤 UserInfoWebPart
은 처음에 웹 페이지에서도 선언되지만 나중에 제거하여 컨트롤에 대한 설명 파일을 가져오는 기능을 보여 줍니다.
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
이제 코드 예제를 실행합니다. 브라우저에서 웹 페이지를 로드합니다. 첫 번째 단계는 컨트롤을 편집하는 것입니다 UserInfoWebPart
.
표시 모드 드롭다운 목록 컨트롤을 사용하고 편집을 선택하여 페이지를 편집 모드로 전환합니다. 컨트롤의 UserInfoWebPart
동사 메뉴(제목 표시줄의 아래쪽 화살표)를 클릭한 다음 편집을 클릭합니다. 편집 UI가 나타나면 해당 필드 값을 편집하는 데 사용할 수 있는 컨트롤 아래에 UserInfoWebPart
여러 편집 컨트롤이 표시됩니다. 일부 필드를 편집하고 확인을 클릭한 다음 표시 모드 드롭다운을 사용하여 페이지를 찾아보기 모드로 반환합니다.
두 번째 단계는 을 내보내는 것입니다. 컨트롤에 대한 WebPart 설명 파일입니다 UserInfoWebPart
. 사용자 지정 컨트롤(제목 표시줄의 아래쪽 화살표로 표시됨)에서 동사 메뉴를 클릭하고 내보내기를 클릭합니다. 지침에 따라 를 저장합니다. 컨트롤에 대한 WebPart 설명 파일입니다. 이제 웹 페이지를 닫고 편집기에서 페이지 원본을 편집합니다.
<aspSample:userinfowebpart>
컨트롤 선언 요소를 삭제한 다음 파일을 저장하고 닫습니다. (아직 컨트롤이 없는 사용자를 시뮬레이션하기 위해 이 단계를 수행하므로 컨트롤을 UserInfoWebPart
페이지로 가져올 수 있습니다.)
브라우저에서 웹 페이지를 다시 로드합니다. 컨트롤을 UserInfoWebPart
제거했기 때문에 컨트롤이 표시되지 않아야 합니다.
표시 모드 드롭다운 목록 컨트롤을 사용하고 카탈로그를 선택하여 페이지를 카탈로그 모드로 전환합니다. 컨트롤에서 ImportCatalogPart찾아보기 단추를 클릭하고 을 찾습니다. 만든 WebPart 파일을 클릭한 다음 업로드 단추를 클릭합니다. 컨트롤에 대한 참조가 옆에 확인란과 함께 표시되어야 합니다. 확인란을 선택한 다음 추가 를 클릭하여 컨트롤을 페이지에 추가합니다.
페이지의 이 보기에 있는 동안 페이지 아래쪽에 있는 ImportCatalogPart 업데이트 단추를 클릭하여 컨트롤에서 여러 속성 값을 ImportCatalogPart 프로그래밍 방식으로 업데이트하는 효과를 확인합니다. 단추를 클릭한 후 UI에서 다양한 속성이 어떻게 변경되는지 관찰합니다.
마지막으로 닫기를 클릭하여 카탈로그 모드를 종료하고 페이지를 반환하여 찾아보기 모드로 돌아갑니다. 이제 컨트롤은 UserInfoWebPart
이전에 내보낼 때의 값을 포함하는 페이지에 표시됩니다.
설명
컨트롤 ImportCatalogPart 을 사용하면 사용자가 영역에 추가하려는 컨트롤 또는 서버 컨트롤의 WebPart 설정을 설명하는 설명 파일을 가져올 수 WebPartZoneBase 있습니다.
사용자가 설명 파일을 가져온 후 파일 WebPart 에서 참조된 컨트롤이 컨트롤 내에 ImportCatalogPart 나타나고 사용자가 컨트롤을 페이지에 추가할 수 있습니다.
설명 파일은 컨트롤 자체와 동일하지 않습니다. 로 끝나는 XML 파일입니다. WebPart 확장 및 에는 컨트롤의 상태를 설명하는 이름/값 쌍(주로 속성 값)이 포함됩니다. 설명 파일은 웹 파트 컨트롤 설명 파일 항목에 설명된 대로 지정된 XML 형식에 따라 만들어집니다.
설명 파일이 참조하는 컨트롤에 관해서는 어셈블리로 컴파일하거나 .ascx 파일에 정의된 사용자 컨트롤일 수 있습니다. 두 경우 모두 가져온 설명 파일에서 참조되는 컨트롤이 컨트롤을 가져오려는 페이지를 호스트하는 웹 서버에 있어야 합니다. 설명 파일은 컨트롤 이름과 컨트롤이 포함된 어셈블리(또는 파일)를 참조하며, 설명 파일에는 컨트롤의 속성 값, 모양 및 동작에 영향을 주는 설정이 포함되어 있습니다.
컨트롤 ImportCatalogPart 을 사용하면 사용자가 컨트롤에 대한 설정을 공유할 수 있습니다. 복잡한 컨트롤에는 많은 속성과 설정이 있을 수 있습니다. 예를 들어 대기업 내의 일반적인 인트라넷 사이트에서 사용자 지정 WebPart 컨트롤에는 데이터베이스 연결, 부서 정보 등 사용자 환경과 관련된 값을 보유하는 여러 속성이 포함될 수 있습니다. 컨트롤에는 모양에 영향을 주는 여러 속성이 포함될 수도 있습니다. 한 사용자는 특정 사이트에서 컨트롤을 개인 설정하여 제대로 작동하고, 컨트롤에 대한 설명 파일을 내보낸 다음, 파일을 가져와서 개인 설정할 수 있는 다른 인트라넷 사이트에 완전히 구성된 컨트롤을 추가할 수 있는 다른 사용자와 설명 파일을 공유할 수 있습니다. 해당 사이트를 호스팅하는 웹 서버에 컨트롤을 포함하는 컴파일된 어셈블리 또는 사용자 제어 파일이 있는 한 사용자는 컨트롤을 다른 웹 사이트에 추가할 수 있습니다.
사용자가 설명 파일(따라서 연결된 서버 컨트롤)을 웹 페이지로 가져오는 메커니즘은 페이지 개발자가 웹 페이지에 추가해야 하는 컨트롤입니다 ImportCatalogPart . 사용자가 페이지를 카탈로그 표시 모드로 전환하면 컨트롤이 ImportCatalogPart 나타나고 사용자는 이 컨트롤을 사용하여 을 찾아볼 수 있습니다. 가져올 서버 컨트롤에 해당하는 WebPart 설명 파일입니다. 컨트롤에서 제공하는 UI 및 지침에 ImportCatalogPart 따라 사용자는 가져온 설명 파일에 지정된 대로 모양과 속성을 완전히 구성하여 원하는 서버 컨트롤을 웹 페이지에 추가할 수 있습니다.
WebPart 컨트롤의 설명 파일을 가져오려면 먼저 기존 WebPart 컨트롤을 기반으로 파일을 만들고 내보내야 합니다. 다음 조건이 충족되는 경우 컨트롤에 대한 설명 파일을 내보낼 수 있습니다.
컨트롤에 특성으로 표시된 속성이 있습니다
Personalizable
.Web.config 파일에는 요소의
enableExport
특성 값이 로true
설정됩니다<webParts>
.개발자는 컨트롤의 ExportMode 속성 값을 내보내기를 금지하는 의 기본값 이외의 값 None으로 설정합니다. 속성 값이 ExportMode 로 설정된 NonSensitiveData경우 사용자가 설명 파일을 내보낼 때 특성이 있는 매개 변수
Personalizable
를 포함하는 IsSensitive 모든 속성은 내보내지지 않습니다. 이를 통해 제어 개발자는 특정 상황에서 연결 문자열과 같은 중요한 데이터가 내보내지는 것을 방지할 수 있습니다.
사용자는 컨트롤의 동사 메뉴에 표시되는 내보내기 동사를 클릭하고 지침에 따라 를 저장하여 내보내기를 사용하도록 설정된 컨트롤을 내보낼 수 있습니다. 컨트롤에 대한 WebPart 설명 파일입니다. 그런 다음 다른 사용자가 이 파일을 가져와서 컨트롤의 자체 인스턴스를 구성할 수 있습니다.
클래스에는 ImportCatalogPart 여러 속성이 포함되어 있습니다. 속성에는 BrowseHelpText 설명 파일을 찾기 위해 탐색할 때 사용자에 대한 지침이 포함된 텍스트가 포함되어 있습니다. 속성에는 ImportedPartLabelText 가져온 컨트롤의 레이블 역할을 하는 텍스트가 컨트롤 내에 ImportCatalogPart 나타납니다. 컨트롤 PartImportErrorLabelText 설명을 가져올 때 오류가 발생할 경우 표시되는 텍스트가 포함됩니다. 속성은 Title 기본 속성을 재정의하여 개발자가 타이틀을 ImportCatalogPart 할당하지 않는 경우 컨트롤의 기본 제목을 할당합니다. 속성에는 UploadButtonText 사용자가 설명 파일을 업로드하기 위해 클릭하는 단추의 텍스트가 포함되며 UploadHelpText , 속성에는 업로드 프로세스에 대한 지침이 포함되어 있습니다.
클래스에는 ImportCatalogPart 몇 가지 고유한 메서드도 포함되어 있습니다. 메서드는 GetAvailableWebPartDescriptions 카탈로그의 WebPartDescription 각 WebPart 컨트롤에 대한 개체를 검색하여 ImportCatalogPart 컨트롤이 인스턴스를 만들지 않고도 각 서버 컨트롤에 대한 정보를 표시할 수 있도록 합니다. 메서드는 GetWebPart 메서드에 전달된 설명에 따라 특정 WebPart 컨트롤의 인스턴스를 가져옵니다.
컨트롤 사용과 관련된 몇 가지 내재된 위험이 있습니다 ImportCatalogPart . 한 예로 가져오기에 사용 되는 설명 파일을 통해 웹 애플리케이션에 악성 데이터를 가져올 수 있습니다. 누군가가 설명 파일에서 문자열 속성 값으로 악성 스크립트 코드를 배치한 경우 사용자가 설명 파일을 가져오고 참조된 서버 컨트롤을 웹 페이지에 추가할 때 해당 스크립트가 실행될 수 있습니다. 악의적인 데이터를 사용하여 설명 파일을 가져올 위험을 최소화하려면 문자열 형식 속성이 있는 서버 컨트롤은 항상 속성 데이터를 인코딩해야 합니다. 또 다른 위험에는 설명 파일을 통해 형식을 가져오는 작업이 포함됩니다( 웹 파트 컨트롤 설명 파일 참조). 악의적인 사용자가 요청을 제출하여 많은 어셈블리를 에 AppDomain로드할 수 있으므로 과도한 양의 메모리가 소비됩니다.
가져오기와 관련된 위험을 방지하려면 가져오기 기능 또는 ImportCatalogPart 컨트롤을 사용하지 않도록 설정하여 기능을 완전히 사용하지 않도록 설정할 수 있습니다. 또는 사용자가 컨트롤에 액세스할 수 있는 항목을 제한할 수 있습니다. 역할 관리를 사용하여 프로그래밍 방식으로 이 작업을 수행할 수 있습니다(역할을 사용하여 권한 부여 관리 참조). 예를 들어 페이지가 로드되면 테스트하여 사용자가 관리자 역할과 같은 특정 역할에 있는지 확인할 수 있습니다. 사용자가 역할에 있는 경우 프로그래밍 방식으로 해당 사용자의 페이지에 컨트롤을 추가할 ImportCatalogPart 수 있습니다. 선언적 접근 방식을 사용하여 컨트롤을 사용할 ImportCatalogPart 수 있는 사용자 집합을 제한할 수도 있습니다. 카탈로그가 포함된 웹 페이지 내에서 두 개의 CatalogZone 컨트롤을 배치할 수 있습니다. 하나는 가져올 수 있는 사용자용이고 다른 하나는 가져올 수 없는 사용자를 위한 컨트롤입니다. 가져올 수 있는 사용자의 영역에는 컨트롤이 ImportCatalogPart 포함됩니다. 영역 자체는 컨트롤 내부에 LoginView 배치할 수 있으므로 영역에서 컨트롤의 사용을 사용자가 지정한 인증된 사용자 또는 역할로만 제한할 수 있습니다.
생성자
ImportCatalogPart() |
ImportCatalogPart 클래스의 새 인스턴스를 초기화합니다. |
속성
AccessKey |
웹 서버 컨트롤을 빠르게 탐색할 수 있는 선택키를 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
Adapter |
컨트롤에 대한 브라우저별 어댑터를 가져옵니다. (다음에서 상속됨 Control) |
AppRelativeTemplateSourceDirectory |
이 컨트롤이 포함된 Page 또는 UserControl 개체의 애플리케이션 상대 가상 디렉터리를 가져오거나 설정합니다. (다음에서 상속됨 Control) |
Attributes |
컨트롤의 속성과 일치하지 않는 임의의 특성(렌더링하는 경우에만 해당)의 컬렉션을 가져옵니다. (다음에서 상속됨 WebControl) |
BackColor |
웹 서버 컨트롤의 배경색을 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
BackImageUrl |
패널 컨트롤의 배경 이미지 URL을 가져오거나 설정합니다. (다음에서 상속됨 Panel) |
BindingContainer |
이 컨트롤의 데이터 바인딩이 포함된 컨트롤을 가져옵니다. (다음에서 상속됨 Control) |
BorderColor |
웹 컨트롤의 테두리 색을 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
BorderStyle |
웹 서버 컨트롤의 테두리 스타일을 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
BorderWidth |
웹 서버 컨트롤의 테두리 너비를 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
BrowseHelpText |
사용자가 설명 파일의 위치를 찾을 때 지침을 제공하는 텍스트 메시지를 가져오거나 설정합니다. |
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 |
클라이언트의 웹 서버 컨트롤에서 렌더링한 CSS 스타일시트 클래스를 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
DataItemContainer |
명명 컨테이너가 IDataItemContainer를 구현할 경우 명명 컨테이너에 대한 참조를 가져옵니다. (다음에서 상속됨 Control) |
DataKeysContainer |
명명 컨테이너가 IDataKeysControl를 구현할 경우 명명 컨테이너에 대한 참조를 가져옵니다. (다음에서 상속됨 Control) |
DefaultButton |
단추가 포함된 폼이 렌더링될 때 포커스를 받는 기본 단추로 처리되는 UI(사용자 인터페이스)의 단추를 가져오거나 설정합니다. 이 속성은 페이지 개발자 코드에서는 호출할 수 없습니다. |
Description |
파트 컨트롤의 도구 설명과 카탈로그에 사용하기 위해 파트 컨트롤의 용도를 요약한 간략한 문구를 가져오거나 설정합니다. (다음에서 상속됨 Part) |
DesignMode |
디자인 화면에서 컨트롤이 사용 중인지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Control) |
Direction |
Panel 컨트롤의 텍스트를 포함하는 컨트롤을 표시할 방향을 가져오거나 설정합니다. (다음에서 상속됨 Panel) |
DisplayTitle |
CatalogPart 컨트롤의 실제 현재 제목이 들어 있는 문자열을 가져옵니다. (다음에서 상속됨 CatalogPart) |
Enabled |
웹 서버 컨트롤이 활성화되어 있는지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
EnableTheming |
이 컨트롤에 테마를 적용할지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
EnableViewState |
서버 컨트롤이 해당 뷰 상태와 포함하고 있는 모든 자식 컨트롤의 뷰 상태를, 요청하는 클라이언트까지 유지하는지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 Control) |
Events |
컨트롤에 대한 이벤트 처리기 대리자의 목록을 가져옵니다. 이 속성은 읽기 전용입니다. (다음에서 상속됨 Control) |
Font |
웹 서버 컨트롤과 연결된 글꼴 속성을 가져옵니다. (다음에서 상속됨 WebControl) |
ForeColor |
웹 서버 컨트롤의 전경색(보통 텍스트 색)을 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
GroupingText |
패널 컨트롤에 포함된 컨트롤 그룹에 대한 캡션을 가져오거나 설정합니다. (다음에서 상속됨 Panel) |
HasAttributes |
컨트롤에 특성 집합이 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 WebControl) |
HasChildViewState |
현재 서버 컨트롤의 자식 컨트롤에 저장된 뷰 상태 설정 값이 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Control) |
Height |
웹 서버 컨트롤의 높이를 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
HorizontalAlign |
패널 내에 있는 내용의 가로 맞춤을 가져오거나 설정합니다. (다음에서 상속됨 Panel) |
ID |
서버 컨트롤에 할당된 프로그래밍 ID를 가져오거나 설정합니다. (다음에서 상속됨 Control) |
IdSeparator |
컨트롤 식별자를 구분하는 데 사용되는 문자를 가져옵니다. (다음에서 상속됨 Control) |
ImportedPartLabelText |
가져온 컨트롤의 카탈로그 내에 있는 컨트롤을 나타내거나 설명하는 파일을 가져온 후에 표시되는 텍스트를 가져오거나 설정합니다. |
IsChildControlStateCleared |
이 컨트롤에 포함된 컨트롤이 컨트롤 상태를 가지는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Control) |
IsEnabled |
컨트롤을 사용할 수 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 WebControl) |
IsTrackingViewState |
서버 컨트롤에서 해당 뷰 상태의 변경 사항을 저장하는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Control) |
IsViewStateEnabled |
이 컨트롤의 뷰 상태를 사용할 수 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Control) |
LoadViewStateByID |
인덱스 대신 ID별로 뷰 상태를 로드할 때 컨트롤이 참여하는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Control) |
NamingContainer |
동일한 ID 속성 값을 사용하는 서버 컨트롤을 구별하기 위해 고유의 네임스페이스를 만드는 서버 컨트롤의 명명 컨테이너에 대한 참조를 가져옵니다. (다음에서 상속됨 Control) |
Page |
서버 컨트롤이 들어 있는 Page 인스턴스에 대한 참조를 가져옵니다. (다음에서 상속됨 Control) |
Parent |
페이지 컨트롤 계층 구조에서 서버 컨트롤의 부모 컨트롤에 대한 참조를 가져옵니다. (다음에서 상속됨 Control) |
PartImportErrorLabelText |
가져오는 중 오류가 발생할 경우 표시되는 오류 메시지를 가져오거나 설정합니다. |
RenderingCompatibility |
렌더링된 HTML이 호환될 ASP.NET 버전을 지정하는 값을 가져옵니다. (다음에서 상속됨 Control) |
ScrollBars |
Panel 컨트롤에서 스크롤 막대의 표시 여부와 위치를 가져오거나 설정합니다. (다음에서 상속됨 Panel) |
Site |
디자인 화면에서 렌더링될 때 현재 컨트롤을 호스팅하는 컨테이너 관련 정보를 가져옵니다. (다음에서 상속됨 Control) |
SkinID |
컨트롤에 적용할 스킨을 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
Style |
웹 서버 컨트롤의 외부 태그에서 스타일 특성으로 렌더링할 텍스트 특성의 컬렉션을 가져옵니다. (다음에서 상속됨 WebControl) |
SupportsDisabledAttribute |
컨트롤의 IsEnabled 속성이 |
TabIndex |
웹 서버 컨트롤의 탭 인덱스를 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
TagKey |
이 웹 서버 컨트롤에 해당하는 HtmlTextWriterTag 값을 가져옵니다. 이 속성은 주로 컨트롤 개발자가 사용합니다. (다음에서 상속됨 WebControl) |
TagName |
컨트롤 태그의 이름을 가져옵니다. 이 속성은 주로 컨트롤 개발자가 사용합니다. (다음에서 상속됨 WebControl) |
TemplateControl |
이 컨트롤이 포함된 템플릿의 참조를 가져오거나 설정합니다. (다음에서 상속됨 Control) |
TemplateSourceDirectory |
Page 또는 현재 서버 컨트롤이 들어 있는 UserControl의 가상 디렉터리를 가져옵니다. (다음에서 상속됨 Control) |
Title |
ImportCatalogPart 컨트롤의 제목 표시줄에 나타나는 제목을 가져오거나 설정합니다. |
ToolTip |
마우스 포인터를 웹 서버 컨트롤 위로 가져갈 때 표시되는 텍스트를 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
UniqueID |
서버 컨트롤에 대해 계층적으로 정규화된 고유 식별자를 가져옵니다. (다음에서 상속됨 Control) |
UploadButtonText |
설명 파일의 업로드를 초기화하는 Button 컨트롤의 텍스트를 가져오거나 설정합니다. |
UploadHelpText |
사용자에게 설명 파일의 업로드 방법을 알려 주는 메시지 텍스트를 가져오거나 설정합니다. |
ValidateRequestMode |
잠재적으로 위험한 값이 있는지 확인하기 위해 컨트롤에서 브라우저의 클라이언트 입력을 검사하는지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 Control) |
ViewState |
같은 페이지에 대한 여러 개의 요청 전반에 서버 컨트롤의 뷰 상태를 저장하고 복원할 수 있도록 하는 상태 정보 사전을 가져옵니다. (다음에서 상속됨 Control) |
ViewStateIgnoresCase |
StateBag 개체가 대/소문자를 구분하는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Control) |
ViewStateMode |
이 컨트롤의 뷰 상태 모드를 가져오거나 설정합니다. (다음에서 상속됨 Control) |
Visible |
페이지에서 서버 컨트롤이 UI로 렌더링되는지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 Control) |
WebPartManager |
WebPartManager 클래스의 현재 인스턴스에 대한 참조를 가져옵니다. (다음에서 상속됨 CatalogPart) |
Width |
웹 서버 컨트롤의 너비를 가져오거나 설정합니다. (다음에서 상속됨 WebControl) |
Wrap |
패널 내에서 내용을 줄 바꿈할지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 Panel) |
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 값을 |
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) |
지정된 |
FindControl(String, Int32) |
현재 명명 컨테이너에서 특정 |
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) |
명시적 인터페이스 구현
확장 메서드
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 동작을 사용하도록 설정합니다. |
적용 대상
추가 정보
.NET