Freigeben über


HtmlSelectBuilder Klasse

Definition

Interagiert zum Erstellen eines HtmlSelect-Steuerelements mit dem Parser.

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
HtmlSelectBuilder

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie ein benutzerdefiniertes HtmlSelectBuilder Steuerelement erstellen, 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 wird 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

Zum Erstellen eines benutzerdefinierten Steuerelement-Generators für ein HtmlSelect Steuerelement müssen Sie von dieser Klasse erben.

Konstruktoren

HtmlSelectBuilder()

Initialisiert eine neue Instanz der HtmlSelectBuilder-Klasse.

Eigenschaften

BindingContainerBuilder

Ruft den Steuerelement-Generator ab, der sich auf den Bindungscontainer für das Steuerelement bezieht, 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 Sammlung von komplexen Eigenschafteneinträgen ab.

(Geerbt von ControlBuilder)
ControlType

Ruft den Type für das zu erstellende Steuerelement ab.

(Geerbt von ControlBuilder)
CurrentFilterResolutionService

Ruft ein IFilterResolutionService-Objekt ab, das für die Verwaltung von Diensten im Zusammenhang mit Gerätefiltern verwendet wird, wenn Steuerelemente im Designer analysiert und beibehalten werden.

(Geerbt von ControlBuilder)
DeclareType

Ruft den Typ ab, der von der Codegenerierung verwendet wird, um das Steuerelement zu deklarieren.

(Geerbt von ControlBuilder)
FChildrenAsProperties

Ruft einen Wert ab, der bestimmt, ob das Steuerelement ein ParseChildrenAttribute-Element enthält, für das ChildrenAsProperties auf true festgelegt ist.

(Geerbt von ControlBuilder)
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

Ruft die Bezeichnereigenschaft für das zu erstellende Steuerelement ab oder legt diese fest.

(Geerbt von ControlBuilder)
InDesigner

Gibt zurück, ob der ControlBuilder im Designer ausgeführt wird.

(Geerbt von ControlBuilder)
InPageTheme

Ruft einen booleschen Wert ab, der angibt, ob dieses ControlBuilder-Objekt zur Generierung von Seitendesigns verwendet wird.

(Geerbt von ControlBuilder)
ItemType

Ruft den Satztyp für den bindenden Container 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 Benennungscontainers für das von diesem Generator erstellte Steuerelement ab.

(Geerbt von ControlBuilder)
PageVirtualPath

Ruft den virtuellen Pfad einer Seite ab, die mit dieser ControlBuilder-Instanz erstellt werden soll.

(Geerbt von ControlBuilder)
Parser

Ruft den für das Analysieren des Steuerelements zuständigen TemplateParser ab.

(Geerbt von ControlBuilder)
ServiceProvider

Ruft das Dienstobjekt für dieses ControlBuilder-Objekt ab.

(Geerbt von ControlBuilder)
SubBuilders

Ruft eine Liste von untergeordneten ControlBuilder-Objekten 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 Sammlung von Vorlageneigenschaftseinträgen ab.

(Geerbt von ControlBuilder)
ThemeResolutionService

Ruft ein IThemeResolutionService-Objekt ab, das zur Entwurfszeit zur Verwaltung von Steuerelementdesigns und -skins verwendet wird

(Geerbt von ControlBuilder)

Methoden

AllowWhitespaceLiterals()

Bestimmt, ob die Leerraumliterale in einem HtmlSelect-Steuerelement zu verarbeiten oder zu ignorieren sind.

AppendLiteralString(String)

Fügt den angegebenen literalen Inhalt einem Steuerelement hinzu. Diese Methode wird durch das ASP.NET-Seitenframework aufgerufen.

(Geerbt von ControlBuilder)
AppendSubBuilder(ControlBuilder)

Fügt dem ControlBuilder-Objekt Generatoren für alle untergeordneten Steuerelemente hinzu, die zu dem Containersteuerelement gehören.

(Geerbt von ControlBuilder)
BuildObject()

Erstellt eine Entwurfszeitinstanz des Steuerelements, auf das das ControlBuilder-Objekt verweist.

(Geerbt von ControlBuilder)
CloseControl()

Wird vom Parser aufgerufen, um den Generator zu benachrichtigen, dass die Analyse des Start- und Endtags des Steuerelements abgeschlossen ist.

(Geerbt von ControlBuilder)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetChildControlType(String, IDictionary)

Ruft den Type für die untergeordneten Steuerelemente des HtmlSelect-Steuerelements ab.

GetHashCode()

Fungiert 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 den Type der aktuellen Instanz ab.

(Geerbt von Object)
HasBody()

Bestimmt, ob ein Steuerelement sowohl ein öffnendes als auch ein schließendes Tag besitzt. Diese Methode wird durch das ASP.NET-Seitenframework aufgerufen.

(Geerbt von ControlBuilder)
HtmlDecodeLiterals()

Bestimmt, ob das Zeichenfolgenliteral eines HTML-Steuerelements HTML-decodiert werden muss. Diese Methode wird durch das ASP.NET-Seitenframework aufgerufen.

(Geerbt von ControlBuilder)
Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary)

Initialisiert den ControlBuilder zur Verwendung nach dessen Instanziierung. Diese Methode wird durch das ASP.NET-Seitenframework aufgerufen.

(Geerbt von ControlBuilder)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
NeedsTagInnerText()

Bestimmt, ob der Steuerelementgenerator seinen inneren Text abrufen muss. Wenn das der Fall ist, muss die SetTagInnerText(String)-Methode aufgerufen werden. Diese Methode wird durch das ASP.NET-Seitenframework aufgerufen.

(Geerbt von ControlBuilder)
OnAppendToParentBuilder(ControlBuilder)

Benachrichtigt den ControlBuilder, dass er dem übergeordneten Steuerelementgenerator hinzugefügt wird.

(Geerbt von ControlBuilder)
ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod)

Ermöglicht einem benutzerdefinierten Steuerelement-Generator den Zugriff auf das generierte CodeDom (Code Document Object Model) sowie das Einfügen und Ändern von Code während der Analyse und der Erstellung 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 inneren Text des Steuerelementtags für den ControlBuilder bereit.

(Geerbt von ControlBuilder)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für

Siehe auch