HtmlSelectBuilder HtmlSelectBuilder HtmlSelectBuilder HtmlSelectBuilder Class

Определение

Взаимодействует с синтаксическим анализатором для построения элемента управления HtmlSelect.Interacts with the parser to build an HtmlSelect control.

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
Наследование
HtmlSelectBuilderHtmlSelectBuilderHtmlSelectBuilderHtmlSelectBuilder

Примеры

В следующем примере кода показано, как создать пользовательский HtmlSelectBuilder элемент управления, определяющий два <option> типа дочерних элементов пользовательского HtmlSelect элемента управления, а затем обрабатывать каждый тип по-разному.The following code example demonstrates how to create a custom HtmlSelectBuilder control that defines two types of <option> child elements of a custom HtmlSelect control and then processes each type differently.

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

Комментарии

Элемент управления взаимодействует со средством синтаксического анализа страниц для HtmlSelect создания элемента управления. HtmlSelectBuilderThe HtmlSelectBuilder control interacts with the page parser to build an HtmlSelect control. Используйте элемент управления для настройки синтаксического анализа HtmlSelect элемента управления. HtmlSelectBuilderUse the HtmlSelectBuilder control to customize the parsing of an HtmlSelect control.

AllowWhitespaceLiterals Свойство имеетfalse значение, чтобы пробельные символы всегда игнорировались.The AllowWhitespaceLiterals property is set to false so that white space is always ignored. Используйте метод для определения типа HtmlSelect дочерних элементов управления. GetChildControlTypeUse the GetChildControlType method to determine the type of the HtmlSelect control's child controls.

Примечания для тех, кто наследует этот метод

Чтобы создать пользовательский конструктор элементов управления для HtmlSelect элемента управления, необходимо наследовать от этого класса.To create a custom control builder for an HtmlSelect control, you need to inherit from this class.

Конструкторы

HtmlSelectBuilder() HtmlSelectBuilder() HtmlSelectBuilder() HtmlSelectBuilder()

Инициализирует новый экземпляр класса HtmlSelectBuilder.Initializes a new instance of the HtmlSelectBuilder class.

Методы

AllowWhitespaceLiterals() AllowWhitespaceLiterals() AllowWhitespaceLiterals() AllowWhitespaceLiterals()

Определяет, должны ли пробелы в элементе управления HtmlSelect обрабатываться или игнорироваться.Determines whether the white space literals in an HtmlSelect control are to be processed or ignored.

AppendLiteralString(String) AppendLiteralString(String) AppendLiteralString(String) AppendLiteralString(String)

Добавляет указанное текстовое содержимое в элемент управления.Adds the specified literal content to a control. Этот метод вызывается платформой страницы ASP.NET.This method is called by the ASP.NET page framework.

(Inherited from ControlBuilder)
AppendSubBuilder(ControlBuilder) AppendSubBuilder(ControlBuilder) AppendSubBuilder(ControlBuilder) AppendSubBuilder(ControlBuilder)

Добавляет сборщики к объекту ControlBuilder для дочерних элементов управления, принадлежащих элементу управления контейнера.Adds builders to the ControlBuilder object for any child controls that belong to the container control.

(Inherited from ControlBuilder)
BuildObject() BuildObject() BuildObject() BuildObject()

Создает экземпляр времени проектирования элемента управления, на который ссылается объект ControlBuilder.Builds a design-time instance of the control that is referred to by this ControlBuilder object.

(Inherited from ControlBuilder)
CloseControl() CloseControl() CloseControl() CloseControl()

Вызывается анализатором для оповещения сборщика о завершении анализа открывающих и закрывающих тегов элемента управления.Called by the parser to inform the builder that the parsing of the control's opening and closing tags is complete.

(Inherited from ControlBuilder)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetChildControlType(String, IDictionary) GetChildControlType(String, IDictionary) GetChildControlType(String, IDictionary) GetChildControlType(String, IDictionary)

Получает объект Type для дочерних элементов управления элементаHtmlSelect.Obtains the Type for the HtmlSelect control's child controls.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetObjectPersistData() GetObjectPersistData() GetObjectPersistData() GetObjectPersistData()

Создает объект ObjectPersistData для объекта ControlBuilder.Creates the ObjectPersistData object for this ControlBuilder object.

(Inherited from ControlBuilder)
GetResourceKey() GetResourceKey() GetResourceKey() GetResourceKey()

Извлекает ключ ресурса для объекта ControlBuilder.Retrieves the resource key for this ControlBuilder object.

(Inherited from ControlBuilder)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
HasBody() HasBody() HasBody() HasBody()

Определяет наличие открывающего и закрывающего тега элемента управления.Determines if a control has both an opening and closing tag. Этот метод вызывается платформой страницы ASP.NET.This method is called by the ASP.NET page framework.

(Inherited from ControlBuilder)
HtmlDecodeLiterals() HtmlDecodeLiterals() HtmlDecodeLiterals() HtmlDecodeLiterals()

Определяет необходимость HTML-декодирования текстовой строки HTML-элемента управления.Determines whether the literal string of an HTML control must be HTML decoded. Этот метод вызывается платформой страницы ASP.NET.This method is called by the ASP.NET page framework.

(Inherited from ControlBuilder)
Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary) Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary) Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary) Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary)

Инициализирует ControlBuilder для использования после его создания.Initializes the ControlBuilder for use after it is instantiated. Этот метод вызывается платформой страницы ASP.NET.This method is called by the ASP.NET page framework.

(Inherited from ControlBuilder)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
NeedsTagInnerText() NeedsTagInnerText() NeedsTagInnerText() NeedsTagInnerText()

Определяет необходимость получения сборщиком элемента управления своего внутреннего текста.Determines if the control builder needs to get its inner text. В случае необходимости вызывается метод SetTagInnerText(String).If so, the SetTagInnerText(String) method must be called. Этот метод вызывается платформой страницы ASP.NET.This method is called by the ASP.NET page framework.

(Inherited from ControlBuilder)
OnAppendToParentBuilder(ControlBuilder) OnAppendToParentBuilder(ControlBuilder) OnAppendToParentBuilder(ControlBuilder) OnAppendToParentBuilder(ControlBuilder)

Оповещает ControlBuilder о добавлении его к сборщику родительского элемента управления.Notifies the ControlBuilder that it is being added to a parent control builder.

(Inherited from ControlBuilder)
ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod) ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod) ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod) ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod)

Позволяет сборщикам пользовательского элемента управления получать доступ к сгенерированной объектной модели документов кода (CodeDom), а также вставлять и изменять код во время анализа и сборки элементов управления.Enables custom control builders to access the generated Code Document Object Model (CodeDom) and insert and modify code during the process of parsing and building controls.

(Inherited from ControlBuilder)
SetResourceKey(String) SetResourceKey(String) SetResourceKey(String) SetResourceKey(String)

Задает ключ ресурса для объекта ControlBuilder.Sets the resource key for this ControlBuilder object.

(Inherited from ControlBuilder)
SetServiceProvider(IServiceProvider) SetServiceProvider(IServiceProvider) SetServiceProvider(IServiceProvider) SetServiceProvider(IServiceProvider)

Задает служебный объект для объекта ControlBuilder.Sets the service object for this ControlBuilder object.

(Inherited from ControlBuilder)
SetTagInnerText(String) SetTagInnerText(String) SetTagInnerText(String) SetTagInnerText(String)

Предоставляет внутренний текст тега элемента управления для ControlBuilder.Provides the ControlBuilder with the inner text of the control tag.

(Inherited from ControlBuilder)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Свойства

BindingContainerBuilder BindingContainerBuilder BindingContainerBuilder BindingContainerBuilder

Получает построитель элемента управления, соответствующий контейнеру привязки для элемента управления, создаваемого этим построителем.Gets the control builder that corresponds to the binding container for the control that this builder creates.

(Inherited from ControlBuilder)
BindingContainerType BindingContainerType BindingContainerType BindingContainerType

Возвращает тип контейнера привязки для элемента управления, создаваемого этим сборщиком.Gets the type of the binding container for the control that this builder creates.

(Inherited from ControlBuilder)
ComplexPropertyEntries ComplexPropertyEntries ComplexPropertyEntries ComplexPropertyEntries

Получает коллекцию сложных записей свойств.Gets a collection of complex property entries.

(Inherited from ControlBuilder)
ControlType ControlType ControlType ControlType

Возвращает Type создаваемого элемента управления.Gets the Type for the control to be created.

(Inherited from ControlBuilder)
CurrentFilterResolutionService CurrentFilterResolutionService CurrentFilterResolutionService CurrentFilterResolutionService

Возвращает объект IFilterResolutionService, используемый для управления службами, относящимися к фильтру устройств при анализе и сохранении элементов управления в конструкторе.Gets an IFilterResolutionService object that is used to manage device-filter related services when parsing and persisting controls in the designer.

(Inherited from ControlBuilder)
DeclareType DeclareType DeclareType DeclareType

Возвращает тип, используемый при создании кода для объявления элемента управления.Gets the type that will be used by code generation to declare the control.

(Inherited from ControlBuilder)
FChildrenAsProperties FChildrenAsProperties FChildrenAsProperties FChildrenAsProperties

Получает значение, которое указывает, есть ли у элемента управления ParseChildrenAttribute, значение ChildrenAsProperties которого установлено на true.Gets a value that determines whether the control has a ParseChildrenAttribute with ChildrenAsProperties set to true.

(Inherited from ControlBuilder)
FIsNonParserAccessor FIsNonParserAccessor FIsNonParserAccessor FIsNonParserAccessor

Получает значение, которое указывает, реализует ли элемент управления интерфейс IParserAccessor.Gets a value that determines whether the control implements the IParserAccessor interface.

(Inherited from ControlBuilder)
HasAspCode HasAspCode HasAspCode HasAspCode

Возвращает значение, определяющее наличие блоков кода у элемента управления.Gets a value indicating whether the control contains any code blocks.

(Inherited from ControlBuilder)
ID ID ID ID

Возвращает или задает свойство-идентификатор создаваемого элемента управления.Gets or sets the identifier property for the control to be built.

(Inherited from ControlBuilder)
InDesigner InDesigner InDesigner InDesigner

Проверяет, запущен ли ControlBuilder в режиме конструктора.Returns whether the ControlBuilder is running in the designer.

(Inherited from ControlBuilder)
InPageTheme InPageTheme InPageTheme InPageTheme

Возвращает логическое значение, указывающее, используется ли объект ControlBuilder для генерирования тем страницы.Gets a Boolean value indicating whether this ControlBuilder object is used to generate page themes.

(Inherited from ControlBuilder)
ItemType ItemType ItemType ItemType

Получает набор типов в контейнере привязки.Gets the type set on the binding container.

(Inherited from ControlBuilder)
Localize Localize Localize Localize

Возвращает логическое значение, указывающее, локализован ли элемент управления, созданный объектом ControlBuilder.Gets a Boolean value indicating whether the control that is created by this ControlBuilder object is localized.

(Inherited from ControlBuilder)
NamingContainerType NamingContainerType NamingContainerType NamingContainerType

Возвращает тип контейнера именования для элемента управления, создаваемого этим сборщиком.Gets the type of the naming container for the control that this builder creates.

(Inherited from ControlBuilder)
PageVirtualPath PageVirtualPath PageVirtualPath PageVirtualPath

Получает виртуальный путь к странице, которая будет построена этим экземпляром ControlBuilder.Gets the virtual path of a page to be built by this ControlBuilder instance.

(Inherited from ControlBuilder)
Parser Parser Parser Parser

Возвращает TemplateParser, анализирующий элемент управления.Gets the TemplateParser responsible for parsing the control.

(Inherited from ControlBuilder)
ServiceProvider ServiceProvider ServiceProvider ServiceProvider

Возвращает служебный объект для объекта ControlBuilder.Gets the service object for this ControlBuilder object.

(Inherited from ControlBuilder)
SubBuilders SubBuilders SubBuilders SubBuilders

Получает список дочерних объектов ControlBuilder для данного объекта ControlBuilder.Gets a list of child ControlBuilder objects for this ControlBuilder object.

(Inherited from ControlBuilder)
TagName TagName TagName TagName

Возвращает имя тега создаваемого элемента управления.Gets the tag name for the control to be built.

(Inherited from ControlBuilder)
TemplatePropertyEntries TemplatePropertyEntries TemplatePropertyEntries TemplatePropertyEntries

Получает коллекцию записей свойств шаблона.Gets a collection of template property entries.

(Inherited from ControlBuilder)
ThemeResolutionService ThemeResolutionService ThemeResolutionService ThemeResolutionService

Возвращает объект IThemeResolutionService, используемый во время разработки для управления темами и обложками элемента управления.Gets an IThemeResolutionService object that is used in design time to manage control themes and skins.

(Inherited from ControlBuilder)

Применяется к

Дополнительно