HtmlSelectBuilder 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
HtmlSelect 컨트롤을 빌드할 파서와 상호 작용합니다.
public ref class HtmlSelectBuilder : System::Web::UI::ControlBuilder
public class HtmlSelectBuilder : System.Web.UI.ControlBuilder
type HtmlSelectBuilder = class
inherit ControlBuilder
Public Class HtmlSelectBuilder
Inherits ControlBuilder
- 상속
예제
다음 코드 예제에서는 사용자 지정 HtmlSelectBuilder 컨트롤의 자식 요소의 <option>
두 가지 형식을 정의 하 고 각 형식을 다르게 처리 하는 사용자 지정 HtmlSelect 컨트롤을 만드는 방법을 보여 줍니다.
<%@ Page Language="C#"%>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS" %>
<!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>HtmlSelectBuilder Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>HtmlSelectBuilder Example</h3>
<aspSample:CustomHtmlSelect
id="customhtmlselect1"
runat="server">
<aspSample:MyOption1 optionid="option1" value="1" text="item 1"/>
<aspSample:MyOption1 optionid="option2" value="2" text="item 2"/>
<aspSample:MyOption2 optionid="option3" value="3" text="item 3"/>
<aspSample:MyOption2 optionid="option4" value="4" text="item 4"/>
</aspSample:CustomHtmlSelect>
</form>
</body>
</html>
<%@ Page Language="VB"%>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB" %>
<!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>HtmlSelectBuilder Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>HtmlSelectBuilder Example</h3>
<aspSample:CustomHtmlSelect
id="customhtmlselect1"
runat="server">
<aspSample:MyOption1 optionid="option1" value="1" text="item 1"/>
<aspSample:MyOption1 optionid="option2" value="2" text="item 2"/>
<aspSample:MyOption2 optionid="option3" value="3" text="item 3"/>
<aspSample:MyOption2 optionid="option4" value="4" text="item 4"/>
</aspSample:CustomHtmlSelect>
</form>
</body>
</html>
using System;
using System.Security.Permissions;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Samples.AspNet.CS.Controls
{
// Define a type of child control for the custom HtmlSelect control.
public class MyOption1
{
string _id;
string _value;
string _text;
public string optionid
{
get
{ return _id; }
set
{ _id = value; }
}
public string value
{
get
{ return _value; }
set
{ _value = value; }
}
public string text
{
get
{ return _text; }
set
{ _text = value; }
}
}
// Define a type of child control for the custom HtmlSelect control.
public class MyOption2
{
string _id;
string _value;
string _text;
public string optionid
{
get
{ return _id; }
set
{ _id = value; }
}
public string value
{
get
{ return _value; }
set
{ _value = value; }
}
public string text
{
get
{ return _text; }
set
{ _text = value; }
}
}
// Define a custom HtmlSelectBuilder control.
public class MyHtmlSelectBuilder : HtmlSelectBuilder
{
[AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
public override Type GetChildControlType(string tagName, IDictionary attribs)
{
// Distinguish between two possible types of child controls.
if (tagName.ToLower().EndsWith("myoption1"))
{
return typeof(MyOption1);
}
else if (tagName.ToLower().EndsWith("myoption2"))
{
return typeof(MyOption2);
}
return null;
}
}
[ControlBuilderAttribute(typeof(MyHtmlSelectBuilder))]
public class CustomHtmlSelect : HtmlSelect
{
// Override AddParsedSubObject to treat the two types
// of child controls differently.
protected override void AddParsedSubObject(object obj)
{
string _outputtext;
if (obj is MyOption1)
{
_outputtext = "option group 1: " + ((MyOption1)obj).text;
ListItem li = new ListItem(_outputtext, ((MyOption1)obj).value);
base.Items.Add(li);
}
if (obj is MyOption2)
{
_outputtext = "option group 2: " + ((MyOption2)obj).text;
ListItem li = new ListItem(_outputtext, ((MyOption2)obj).value);
base.Items.Add(li);
}
}
}
}
Imports System.Security.Permissions
Imports System.Collections
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Namespace Samples.AspNet.VB.Controls
' Define a type of child control for the custom HtmlSelect control.
Public Class MyOption1
Private _id As String
Private _value As String
Private _text As String
Public Property optionid() As String
Get
Return _id
End Get
Set(ByVal value As String)
_id = value
End Set
End Property
Public Property value() As String
Get
Return _value
End Get
Set(ByVal value As String)
_value = value
End Set
End Property
Public Property [text]() As String
Get
Return _text
End Get
Set(ByVal value As String)
_text = value
End Set
End Property
End Class
' Define a type of child control for the custom HtmlSelect control.
Public Class MyOption2
Private _id As String
Private _value As String
Private _text As String
Public Property optionid() As String
Get
Return _id
End Get
Set(ByVal value As String)
_id = value
End Set
End Property
Public Property value() As String
Get
Return _value
End Get
Set(ByVal value As String)
_value = value
End Set
End Property
Public Property [text]() As String
Get
Return _text
End Get
Set(ByVal value As String)
_text = value
End Set
End Property
End Class
' Define a custom HtmlSelectBuilder control.
Public Class MyHtmlSelectBuilder
Inherits HtmlSelectBuilder
<AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Overrides Function GetChildControlType(ByVal tagName As String, ByVal attribs As IDictionary) As Type
' Distinguish between two possible types of child controls.
If tagName.ToLower().EndsWith("myoption1") Then
Return GetType(MyOption1)
ElseIf tagName.ToLower().EndsWith("myoption2") Then
Return GetType(MyOption2)
End If
Return Nothing
End Function
End Class
<ControlBuilderAttribute(GetType(MyHtmlSelectBuilder))> _
Public Class CustomHtmlSelect
Inherits HtmlSelect
' Override AddParsedSubObject to treat the two types
' of child controls differently.
Protected Overrides Sub AddParsedSubObject(ByVal obj As Object)
Dim _outputtext As String
If TypeOf obj Is MyOption1 Then
_outputtext = "option group 1: " + CType(obj, MyOption1).text
Dim li As New ListItem(_outputtext, CType(obj, MyOption1).value)
MyBase.Items.Add(li)
End If
If TypeOf obj Is MyOption2 Then
_outputtext = "option group 2: " + CType(obj, MyOption2).text
Dim li As New ListItem(_outputtext, CType(obj, MyOption2).value)
MyBase.Items.Add(li)
End If
End Sub
End Class
End Namespace
설명
컨트롤이 HtmlSelectBuilder 페이지 파서와 상호 작용하여 컨트롤을 빌드합니다 HtmlSelect . 컨트롤을 HtmlSelectBuilder 사용하여 컨트롤의 HtmlSelect 구문 분석을 사용자 지정합니다.
AllowWhitespaceLiterals 이 속성은 공백이 항상 무시되도록 설정 false
됩니다. 메서드를 GetChildControlType 사용하여 컨트롤의 자식 컨트롤 형식을 HtmlSelect 확인합니다.
상속자 참고
컨트롤에 대한 사용자 지정 컨트롤 작성기를 HtmlSelect 만들려면 이 클래스에서 상속해야 합니다.
생성자
HtmlSelectBuilder() |
HtmlSelectBuilder 클래스의 새 인스턴스를 초기화합니다. |
속성
BindingContainerBuilder |
이 빌더가 만드는 컨트롤의 바인딩 컨테이너에 해당하는 컨트롤 작성기를 가져옵니다. (다음에서 상속됨 ControlBuilder) |
BindingContainerType |
이 작성기가 만드는 컨트롤의 바인딩 컨테이너 형식을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
ComplexPropertyEntries |
복합 속성 항목의 컬렉션을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
ControlType |
만들려는 컨트롤의 Type을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
CurrentFilterResolutionService |
디자이너에서 컨트롤을 구문 분석하고 유지할 때 디바이스 필터 관련 서비스를 관리하는 데 사용되는 IFilterResolutionService 개체입니다. (다음에서 상속됨 ControlBuilder) |
DeclareType |
코드 생성에서 컨트롤을 선언하는 데 사용되는 형식을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
FChildrenAsProperties |
컨트롤에 ParseChildrenAttribute가 |
FIsNonParserAccessor |
컨트롤이 IParserAccessor 인터페이스를 구현하는지 여부를 결정하는 값을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
HasAspCode |
컨트롤에 코드 블록이 포함되어 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
ID |
만들려는 컨트롤의 ID 속성을 가져오거나 설정합니다. (다음에서 상속됨 ControlBuilder) |
InDesigner |
ControlBuilder가 디자이너에서 실행되고 있는지 여부를 반환합니다. (다음에서 상속됨 ControlBuilder) |
InPageTheme |
이 ControlBuilder 개체가 페이지 테마를 생성하는 데 사용할지 여부를 결정하는 부울 값을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
ItemType |
바인딩 컨테이너에 설정된 형식을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
Localize |
이 ControlBuilder 개체에서 만든 컨트롤이 지역화되어 있는지 여부를 나타내는 부울 값을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
NamingContainerType |
이 작성기에서 만든 컨트롤의 명명 컨테이너 형식을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
PageVirtualPath |
이 ControlBuilder 인스턴스로 빌드할 페이지의 가상 경로를 가져옵니다. (다음에서 상속됨 ControlBuilder) |
Parser |
컨트롤을 구문 분석하는 TemplateParser를 가져옵니다. (다음에서 상속됨 ControlBuilder) |
ServiceProvider |
이 ControlBuilder 개체의 서비스 개체를 가져옵니다. (다음에서 상속됨 ControlBuilder) |
SubBuilders |
이 ControlBuilder 개체에 대한 하위 ControlBuilder 개체의 목록을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
TagName |
만들려는 컨트롤의 태그 이름을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
TemplatePropertyEntries |
템플릿 속성 항목의 컬렉션을 가져옵니다. (다음에서 상속됨 ControlBuilder) |
ThemeResolutionService |
디자인 타임에 컨트롤 테마와 스킨을 관리하는 데 사용되는 IThemeResolutionService 개체를 가져옵니다. (다음에서 상속됨 ControlBuilder) |
메서드
AllowWhitespaceLiterals() |
HtmlSelect 컨트롤의 공백 리터럴이 처리되는지 아니면 무시되는지 여부를 확인합니다. |
AppendLiteralString(String) |
지정된 리터럴 콘텐츠를 컨트롤에 추가합니다. 이 메서드는 ASP.NET 페이지 프레임워크에서 호출합니다. (다음에서 상속됨 ControlBuilder) |
AppendSubBuilder(ControlBuilder) |
컨테이너 컨트롤에 속하는 모든 자식 컨트롤에 대한 ControlBuilder 개체에 빌더를 추가합니다. (다음에서 상속됨 ControlBuilder) |
BuildObject() |
ControlBuilder 개체가 참조하는 컨트롤의 디자인 타임 인스턴스를 빌드합니다. (다음에서 상속됨 ControlBuilder) |
CloseControl() |
파서에서 호출하여 컨트롤의 여는 태그와 닫는 태그의 구문 분석이 완료되었음을 작성기에 알려 줍니다. (다음에서 상속됨 ControlBuilder) |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetChildControlType(String, IDictionary) |
Type 컨트롤의 자식 컨트롤에 대한 HtmlSelect을 가져옵니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetObjectPersistData() |
이 ObjectPersistData 개체의 ControlBuilder 개체를 만듭니다. (다음에서 상속됨 ControlBuilder) |
GetResourceKey() |
이 ControlBuilder 개체의 리소스 키를 검색합니다. (다음에서 상속됨 ControlBuilder) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
HasBody() |
컨트롤에 여는 태그와 닫는 태그가 있는지 여부를 결정합니다. 이 메서드는 ASP.NET 페이지 프레임워크에서 호출합니다. (다음에서 상속됨 ControlBuilder) |
HtmlDecodeLiterals() |
HTML 컨트롤의 리터럴 문자열이 HTML로 디코딩되는지 여부를 결정합니다. 이 메서드는 ASP.NET 페이지 프레임워크에서 호출합니다. (다음에서 상속됨 ControlBuilder) |
Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary) |
인스턴스화된 후에 사용하기 위해 ControlBuilder를 초기화합니다. 이 메서드는 ASP.NET 페이지 프레임워크에서 호출합니다. (다음에서 상속됨 ControlBuilder) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
NeedsTagInnerText() |
컨트롤 작성기가 내부 텍스트를 가져오는지 결정합니다. 내부 텍스트를 가져오려면 SetTagInnerText(String) 메서드가 호출되어야 합니다. 이 메서드는 ASP.NET 페이지 프레임워크에서 호출합니다. (다음에서 상속됨 ControlBuilder) |
OnAppendToParentBuilder(ControlBuilder) |
내부 텍스트가 부모 컨트롤 작성기에 추가되고 있음을 ControlBuilder에 알립니다. (다음에서 상속됨 ControlBuilder) |
ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod) |
사용자 지정 컨트롤 작성기를 활성화하여 생성된 CodeDom(코드 문서 개체 모델)에 액세스하고, 컨트롤을 구문 분석 및 작성하는 동안 코드를 삽입 및 수정합니다. (다음에서 상속됨 ControlBuilder) |
SetResourceKey(String) |
이 ControlBuilder 개체의 리소스 키를 설정합니다. (다음에서 상속됨 ControlBuilder) |
SetServiceProvider(IServiceProvider) |
이 ControlBuilder 개체의 서비스 개체를 설정합니다. (다음에서 상속됨 ControlBuilder) |
SetTagInnerText(String) |
컨트롤 태그의 내부 텍스트를 ControlBuilder에 제공합니다. (다음에서 상속됨 ControlBuilder) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |