다음을 통해 공유


HtmlSelectBuilder 클래스

정의

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

예제

다음 코드 예제에서는 사용자 지정 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

컨트롤에 ParseChildrenAttributetrue로 설정된 ChildrenAsProperties가 있는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 ControlBuilder)
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)

적용 대상

추가 정보