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 コントロールの 2 種類の <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 |
作成するコントロールの識別子プロパティを取得または設定します。 (継承元 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 (Code Document Object Model) にアクセスし、コントロールの解析とビルドのプロセス中にコードを挿入および更新できるようにします。 (継承元 ControlBuilder) |
SetResourceKey(String) |
この ControlBuilder オブジェクトのリソース キーを設定します。 (継承元 ControlBuilder) |
SetServiceProvider(IServiceProvider) |
この ControlBuilder オブジェクトのサービス オブジェクトを設定します。 (継承元 ControlBuilder) |
SetTagInnerText(String) |
ControlBuilder にコントロール タグの内部テキストを提供します。 (継承元 ControlBuilder) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |