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 элемент управления, который определяет два типа дочерних <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, значение ChildrenAsProperties которого установлено на |
FIsNonParserAccessor |
Получает значение, которое указывает, реализует ли элемент управления интерфейс IParserAccessor. (Унаследовано от ControlBuilder) |
HasAspCode |
Возвращает значение, определяющее наличие блоков кода у элемента управления. (Унаследовано от ControlBuilder) |
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) |