HtmlSelectBuilder Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Interagiert mit dem Parser, um ein HtmlSelect Steuerelement zu erstellen.
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
- Vererbung
Beispiele
Im folgenden Codebeispiel wird das Erstellen eines benutzerdefinierten HtmlSelectBuilder Steuerelements veranschaulicht, das zwei Typen untergeordneter <option> Elemente eines benutzerdefinierten HtmlSelect Steuerelements definiert und dann jeden Typ unterschiedlich verarbeitet.
<%@ 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
Hinweise
Das HtmlSelectBuilder Steuerelement interagiert mit dem Seitenparser, um ein HtmlSelect Steuerelement zu erstellen. Verwenden Sie das HtmlSelectBuilder Steuerelement, um die Analyse eines HtmlSelect Steuerelements anzupassen.
Die AllowWhitespaceLiterals() Eigenschaft ist so false festgelegt, dass Leerzeichen immer ignoriert werden. Verwenden Sie die GetChildControlType Methode, um den Typ der untergeordneten Steuerelemente des HtmlSelect Steuerelements zu bestimmen.
Hinweise für Vererber
Um einen benutzerdefinierten Steuerelement-Generator für ein HtmlSelect Steuerelement zu erstellen, müssen Sie von dieser Klasse erben.
Konstruktoren
| Name | Beschreibung |
|---|---|
| HtmlSelectBuilder() |
Initialisiert eine neue Instanz der HtmlSelectBuilder-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| BindingContainerBuilder |
Ruft den Steuerelement-Generator ab, der dem Bindungscontainer für das Steuerelement entspricht, das dieser Generator erstellt. (Geerbt von ControlBuilder) |
| BindingContainerType |
Ruft den Typ des Bindungscontainers für das Steuerelement ab, das dieser Generator erstellt. (Geerbt von ControlBuilder) |
| ComplexPropertyEntries |
Ruft eine Auflistung komplexer Eigenschaftseinträge ab. (Geerbt von ControlBuilder) |
| ControlType |
Ruft das Type zu erstellende Steuerelement ab. (Geerbt von ControlBuilder) |
| CurrentFilterResolutionService |
Ruft ein IFilterResolutionService Objekt ab, das zum Verwalten gerätefilterbezogener Dienste beim Analysieren und Beibehalten von Steuerelementen im Designer verwendet wird. (Geerbt von ControlBuilder) |
| DeclareType |
Ruft den Typ ab, der von der Codegenerierung zum Deklarieren des Steuerelements verwendet wird. (Geerbt von ControlBuilder) |
| FChildrenAsProperties |
Ruft einen Wert ab, der bestimmt, ob das Steuerelement einen ParseChildrenAttribute Wert aufweist, ChildrenAsProperties auf den |
| FIsNonParserAccessor |
Ruft einen Wert ab, der bestimmt, ob das Steuerelement die IParserAccessor Schnittstelle implementiert. (Geerbt von ControlBuilder) |
| HasAspCode |
Ruft einen Wert ab, der angibt, ob das Steuerelement Codeblöcke enthält. (Geerbt von ControlBuilder) |
| ID |
Dient zum Abrufen oder Festlegen der Bezeichnereigenschaft für das zu verwendende Steuerelement. (Geerbt von ControlBuilder) |
| InDesigner |
Gibt zurück, ob der ControlBuilder Designer ausgeführt wird. (Geerbt von ControlBuilder) |
| InPageTheme |
Ruft einen booleschen Wert ab, der angibt, ob dieses ControlBuilder Objekt zum Generieren von Seitendesigns verwendet wird. (Geerbt von ControlBuilder) |
| ItemType |
Ruft den Typ für den Bindungscontainer ab. (Geerbt von ControlBuilder) |
| Localize |
Ruft einen booleschen Wert ab, der angibt, ob das von diesem ControlBuilder Objekt erstellte Steuerelement lokalisiert wird. (Geerbt von ControlBuilder) |
| NamingContainerType |
Ruft den Typ des Namenscontainers für das Steuerelement ab, das dieser Generator erstellt. (Geerbt von ControlBuilder) |
| PageVirtualPath |
Ruft den virtuellen Pfad einer Seite ab, die von dieser ControlBuilder Instanz erstellt werden soll. (Geerbt von ControlBuilder) |
| Parser |
Ruft die verantwortlich für die TemplateParser Analyse des Steuerelements ab. (Geerbt von ControlBuilder) |
| ServiceProvider |
Ruft das Dienstobjekt für dieses ControlBuilder Objekt ab. (Geerbt von ControlBuilder) |
| SubBuilders |
Ruft eine Liste der untergeordneten ControlBuilder Objekte für dieses ControlBuilder Objekt ab. (Geerbt von ControlBuilder) |
| TagName |
Ruft den Tagnamen für das zu erstellende Steuerelement ab. (Geerbt von ControlBuilder) |
| TemplatePropertyEntries |
Ruft eine Auflistung von Vorlageneigenschafteneinträgen ab. (Geerbt von ControlBuilder) |
| ThemeResolutionService |
Ruft ein IThemeResolutionService Objekt ab, das in der Entwurfszeit zum Verwalten von Steuerelementdesigns und Skins verwendet wird. (Geerbt von ControlBuilder) |
Methoden
| Name | Beschreibung |
|---|---|
| AllowWhitespaceLiterals() |
Bestimmt, ob die Leerraumliterale in einem HtmlSelect Steuerelement verarbeitet oder ignoriert werden sollen. |
| AppendLiteralString(String) |
Fügt einem Steuerelement den angegebenen Literalinhalt hinzu. Diese Methode wird vom ASP.NET Seitenframework aufgerufen. (Geerbt von ControlBuilder) |
| AppendSubBuilder(ControlBuilder) |
Fügt dem ControlBuilder Objekt Generatoren für alle untergeordneten Steuerelemente hinzu, die zum Containersteuerelement gehören. (Geerbt von ControlBuilder) |
| BuildObject() |
Erstellt eine Entwurfszeitinstanz des Steuerelements, auf das von diesem ControlBuilder Objekt verwiesen wird. (Geerbt von ControlBuilder) |
| CloseControl() |
Wird vom Parser aufgerufen, um den Generator darüber zu informieren, dass die Analyse der öffnenden und schließenden Tags des Steuerelements abgeschlossen ist. (Geerbt von ControlBuilder) |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetChildControlType(String, IDictionary) |
Ruft die Type untergeordneten Steuerelemente des HtmlSelect Steuerelements ab. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetObjectPersistData() |
Erstellt das ObjectPersistData Objekt für dieses ControlBuilder Objekt. (Geerbt von ControlBuilder) |
| GetResourceKey() |
Ruft den Ressourcenschlüssel für dieses ControlBuilder Objekt ab. (Geerbt von ControlBuilder) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| HasBody() |
Bestimmt, ob ein Steuerelement über ein öffnende und schließende Tag verfügt. Diese Methode wird vom ASP.NET Seitenframework aufgerufen. (Geerbt von ControlBuilder) |
| HtmlDecodeLiterals() |
Bestimmt, ob die Literalzeichenfolge eines HTML-Steuerelements HTML decodiert werden muss. Diese Methode wird vom ASP.NET Seitenframework aufgerufen. (Geerbt von ControlBuilder) |
| Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary) |
Initialisiert die Verwendung nach der ControlBuilder Instanziierung. Diese Methode wird vom ASP.NET Seitenframework aufgerufen. (Geerbt von ControlBuilder) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| NeedsTagInnerText() |
Bestimmt, ob der Steuerelement-Generator seinen inneren Text abrufen muss. Wenn ja, muss die SetTagInnerText(String) Methode aufgerufen werden. Diese Methode wird vom ASP.NET Seitenframework aufgerufen. (Geerbt von ControlBuilder) |
| OnAppendToParentBuilder(ControlBuilder) |
Benachrichtigt sie ControlBuilder , dass sie einem übergeordneten Steuerelement-Generator hinzugefügt wird. (Geerbt von ControlBuilder) |
| ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod) |
Ermöglicht benutzerdefinierten Steuerelement-Generatoren den Zugriff auf das generierte CodeDokumentobjektmodell (CodeDom) und das Einfügen und Ändern von Code während des Analyse- und Erstellungsprozesses von Steuerelementen. (Geerbt von ControlBuilder) |
| SetResourceKey(String) |
Legt den Ressourcenschlüssel für dieses ControlBuilder Objekt fest. (Geerbt von ControlBuilder) |
| SetServiceProvider(IServiceProvider) |
Legt das Dienstobjekt für dieses ControlBuilder Objekt fest. (Geerbt von ControlBuilder) |
| SetTagInnerText(String) |
Stellt den ControlBuilder inneren Text des Steuerelementtags bereit. (Geerbt von ControlBuilder) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |