HtmlSelectBuilder クラス
アセンブリ: System.Web (system.web.dll 内)


HtmlSelectBuilder コントロールは、ページ パーサーとやり取りして HtmlSelect コントロールを作成します。HtmlSelectBuilder コントロールを使用して、HtmlSelect コントロールの解析をカスタマイズします。
AllowWhitespaceLiterals プロパティを false に設定し、常に空白が無視されるようにします。GetChildControlType メソッドを使用して、HtmlSelect コントロールの子コントロールの型を確認します。
継承時の注意 HtmlSelect コントロールのカスタム コントロール ビルダを作成するには、このクラスから継承する必要があります。
HtmlSelect カスタム コントロールの <option> 子要素の 2 つの型を定義して、それぞれの型を別々に処理する、HtmlSelectBuilder カスタム コントロールを作成する方法を次のコード例に示します。
<%@ 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 > <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="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 > <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>
Imports System 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
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); } } } }


System.Web.UI.ControlBuilder
System.Web.UI.HtmlControls.HtmlSelectBuilder


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


HtmlSelectBuilder コンストラクタ
アセンブリ: System.Web (system.web.dll 内)



Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


HtmlSelectBuilder プロパティ

名前 | 説明 | |
---|---|---|
![]() | BindingContainerType | このビルダが作成するコントロールのバインディング コンテナの型を取得します。 ( ControlBuilder から継承されます。) |
![]() | ControlType | 作成するコントロールの Type を取得します。 ( ControlBuilder から継承されます。) |
![]() | CurrentFilterResolutionService | デザイナ上でコントロールを解析したり永続化したりする際に、デバイス フィルタ関連サービスを管理するために使用される IFilterResolutionService オブジェクトを取得します。 ( ControlBuilder から継承されます。) |
![]() | DeclareType | コントロールを宣言するために codegen によって使用される型を取得します。 ( ControlBuilder から継承されます。) |
![]() | HasAspCode | コントロールにコード ブロックが格納されているかどうかを示す値を取得します。 ( ControlBuilder から継承されます。) |
![]() | ID | 作成するコントロールの識別子プロパティを取得または設定します。 ( ControlBuilder から継承されます。) |
![]() | Localize | この ControlBuilder オブジェクトによって作成されるコントロールがローカライズされるかどうかを示すブール値を取得します。 ( ControlBuilder から継承されます。) |
![]() | NamingContainerType | このビルダが作成するコントロールの名前付けコンテナの型を取得します。 ( ControlBuilder から継承されます。) |
![]() | ServiceProvider | この ControlBuilder オブジェクトのサービス オブジェクトを取得します。 ( ControlBuilder から継承されます。) |
![]() | TagName | 作成するコントロールのタグ名を取得します。 ( ControlBuilder から継承されます。) |
![]() | ThemeResolutionService | デザイン時にコントロールのテーマとスキンを管理するために使用される IThemeResolutionService オブジェクトを取得します。 ( ControlBuilder から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | FChildrenAsProperties | コントロールの ParseChildrenAttribute の ChildrenAsProperties を true に設定するかどうかを決定します。 ( ControlBuilder から継承されます。) |
![]() | FIsNonParserAccessor | コントロールに IParserAccessor インターフェイスを実装するかどうかを決定します。 ( ControlBuilder から継承されます。) |
![]() | InDesigner | ControlBuilder がデザイナで実行されているかどうかを示す値を返します。 ( ControlBuilder から継承されます。) |
![]() | InPageTheme | この ControlBuilder オブジェクトを使用してページ テーマを生成するかどうかを示すブール値を取得します。 ( ControlBuilder から継承されます。) |
![]() | Parser | コントロールを解析する TemplateParser を取得します。 ( ControlBuilder から継承されます。) |

HtmlSelectBuilder メソッド

名前 | 説明 | |
---|---|---|
![]() | AllowWhitespaceLiterals | オーバーライドされます。 HtmlSelect コントロール内の空白のリテラルを処理するか無視するかを決定します。 |
![]() | AppendLiteralString | 指定されたリテラルな内容をコントロールに追加します。このメソッドは ASP.NET ページ フレームワークによって呼び出されます。 ( ControlBuilder から継承されます。) |
![]() | AppendSubBuilder | コンテナ コントロールに属するすべての子コントロールの ControlBuilder オブジェクトにビルダを追加します。 ( ControlBuilder から継承されます。) |
![]() | BuildObject | この ControlBuilder オブジェクトによって参照されるコントロールのデザイン時のインスタンスを作成します。 ( ControlBuilder から継承されます。) |
![]() | CloseControl | コントロールの開始タグと終了タグの解析が完了したことをビルダに通知するためにパーサーによって呼び出されます。 ( ControlBuilder から継承されます。) |
![]() | CreateBuilderFromType | 指定されたタグ名、オブジェクト型、およびビルダを定義する他のさまざまなパラメータを使用して、ControlBuilder オブジェクトを作成します。 ( ControlBuilder から継承されます。) |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetChildControlType | オーバーライドされます。 HtmlSelect コントロールの子コントロールの Type を取得します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetObjectPersistData | この ControlBuilder オブジェクトの ObjectPersistData オブジェクトを作成します。 ( ControlBuilder から継承されます。) |
![]() | GetResourceKey | この ControlBuilder オブジェクトのリソース キーを取得します。 ( ControlBuilder から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | HasBody | コントロールに開始タグと終了タグの両方のタグを含めるかどうかを決定します。このメソッドは ASP.NET ページ フレームワークによって呼び出されます。 ( ControlBuilder から継承されます。) |
![]() | HtmlDecodeLiterals | HTML コントロールのリテラル文字列を HTML デコードするかどうかを決定します。このメソッドは ASP.NET ページ フレームワークによって呼び出されます。 ( ControlBuilder から継承されます。) |
![]() | Init | インスタンス化後、ControlBuilder を初期化します。このメソッドは ASP.NET ページ フレームワークによって呼び出されます。 ( ControlBuilder から継承されます。) |
![]() | NeedsTagInnerText | コントロール ビルダがその内部テキストを取得するかどうかを決定します。内部テキストを取得する必要がある場合は、SetTagInnerText メソッドを呼び出す必要があります。このメソッドは ASP.NET ページ フレームワークによって呼び出されます。 ( ControlBuilder から継承されます。) |
![]() | OnAppendToParentBuilder | 親コントロール ビルダに追加されることを ControlBuilder に通知します。 ( ControlBuilder から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | SetResourceKey | この ControlBuilder オブジェクトのリソース キーを設定します。 ( ControlBuilder から継承されます。) |
![]() | SetServiceProvider | この ControlBuilder オブジェクトのサービス オブジェクトを設定します。 ( ControlBuilder から継承されます。) |
![]() | SetTagInnerText | ControlBuilder にコントロール タグの内部テキストを提供します。 ( ControlBuilder から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

HtmlSelectBuilder メンバ
パーサーとやり取りして、HtmlSelect コントロールを作成します。
HtmlSelectBuilder データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | BindingContainerType | このビルダが作成するコントロールのバインディング コンテナの型を取得します。(ControlBuilder から継承されます。) |
![]() | ControlType | 作成するコントロールの Type を取得します。(ControlBuilder から継承されます。) |
![]() | CurrentFilterResolutionService | デザイナ上でコントロールを解析したり永続化したりする際に、デバイス フィルタ関連サービスを管理するために使用される IFilterResolutionService オブジェクトを取得します。(ControlBuilder から継承されます。) |
![]() | DeclareType | コントロールを宣言するために codegen によって使用される型を取得します。(ControlBuilder から継承されます。) |
![]() | HasAspCode | コントロールにコード ブロックが格納されているかどうかを示す値を取得します。(ControlBuilder から継承されます。) |
![]() | ID | 作成するコントロールの識別子プロパティを取得または設定します。(ControlBuilder から継承されます。) |
![]() | Localize | この ControlBuilder オブジェクトによって作成されるコントロールがローカライズされるかどうかを示すブール値を取得します。(ControlBuilder から継承されます。) |
![]() | NamingContainerType | このビルダが作成するコントロールの名前付けコンテナの型を取得します。(ControlBuilder から継承されます。) |
![]() | ServiceProvider | この ControlBuilder オブジェクトのサービス オブジェクトを取得します。(ControlBuilder から継承されます。) |
![]() | TagName | 作成するコントロールのタグ名を取得します。(ControlBuilder から継承されます。) |
![]() | ThemeResolutionService | デザイン時にコントロールのテーマとスキンを管理するために使用される IThemeResolutionService オブジェクトを取得します。(ControlBuilder から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | FChildrenAsProperties | コントロールの ParseChildrenAttribute の ChildrenAsProperties を true に設定するかどうかを決定します。(ControlBuilder から継承されます。) |
![]() | FIsNonParserAccessor | コントロールに IParserAccessor インターフェイスを実装するかどうかを決定します。(ControlBuilder から継承されます。) |
![]() | InDesigner | ControlBuilder がデザイナで実行されているかどうかを示す値を返します。(ControlBuilder から継承されます。) |
![]() | InPageTheme | この ControlBuilder オブジェクトを使用してページ テーマを生成するかどうかを示すブール値を取得します。(ControlBuilder から継承されます。) |
![]() | Parser | コントロールを解析する TemplateParser を取得します。(ControlBuilder から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | AllowWhitespaceLiterals | オーバーライドされます。 HtmlSelect コントロール内の空白のリテラルを処理するか無視するかを決定します。 |
![]() | AppendLiteralString | 指定されたリテラルな内容をコントロールに追加します。このメソッドは ASP.NET ページ フレームワークによって呼び出されます。 (ControlBuilder から継承されます。) |
![]() | AppendSubBuilder | コンテナ コントロールに属するすべての子コントロールの ControlBuilder オブジェクトにビルダを追加します。 (ControlBuilder から継承されます。) |
![]() | BuildObject | この ControlBuilder オブジェクトによって参照されるコントロールのデザイン時のインスタンスを作成します。 (ControlBuilder から継承されます。) |
![]() | CloseControl | コントロールの開始タグと終了タグの解析が完了したことをビルダに通知するためにパーサーによって呼び出されます。 (ControlBuilder から継承されます。) |
![]() | CreateBuilderFromType | 指定されたタグ名、オブジェクト型、およびビルダを定義する他のさまざまなパラメータを使用して、ControlBuilder オブジェクトを作成します。 (ControlBuilder から継承されます。) |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetChildControlType | オーバーライドされます。 HtmlSelect コントロールの子コントロールの Type を取得します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetObjectPersistData | この ControlBuilder オブジェクトの ObjectPersistData オブジェクトを作成します。 (ControlBuilder から継承されます。) |
![]() | GetResourceKey | この ControlBuilder オブジェクトのリソース キーを取得します。 (ControlBuilder から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | HasBody | コントロールに開始タグと終了タグの両方のタグを含めるかどうかを決定します。このメソッドは ASP.NET ページ フレームワークによって呼び出されます。 (ControlBuilder から継承されます。) |
![]() | HtmlDecodeLiterals | HTML コントロールのリテラル文字列を HTML デコードするかどうかを決定します。このメソッドは ASP.NET ページ フレームワークによって呼び出されます。 (ControlBuilder から継承されます。) |
![]() | Init | インスタンス化後、ControlBuilder を初期化します。このメソッドは ASP.NET ページ フレームワークによって呼び出されます。 (ControlBuilder から継承されます。) |
![]() | NeedsTagInnerText | コントロール ビルダがその内部テキストを取得するかどうかを決定します。内部テキストを取得する必要がある場合は、SetTagInnerText メソッドを呼び出す必要があります。このメソッドは ASP.NET ページ フレームワークによって呼び出されます。 (ControlBuilder から継承されます。) |
![]() | OnAppendToParentBuilder | 親コントロール ビルダに追加されることを ControlBuilder に通知します。 (ControlBuilder から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | SetResourceKey | この ControlBuilder オブジェクトのリソース キーを設定します。 (ControlBuilder から継承されます。) |
![]() | SetServiceProvider | この ControlBuilder オブジェクトのサービス オブジェクトを設定します。 (ControlBuilder から継承されます。) |
![]() | SetTagInnerText | ControlBuilder にコントロール タグの内部テキストを提供します。 (ControlBuilder から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

- HtmlSelectBuilderのページへのリンク