Condividi tramite


HtmlSelectBuilder Classe

Definizione

Interagisce con il parser per compilare un HtmlSelect controllo.

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
Ereditarietà
HtmlSelectBuilder

Esempio

Nell'esempio di codice seguente viene illustrato come creare un controllo personalizzato HtmlSelectBuilder che definisce due tipi di elementi figlio di <option> un controllo personalizzato HtmlSelect e quindi elabora ogni tipo in modo diverso.

<%@ 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

Commenti

Il HtmlSelectBuilder controllo interagisce con il parser di pagina per compilare un HtmlSelect controllo. Usare il HtmlSelectBuilder controllo per personalizzare l'analisi di un HtmlSelect controllo.

La AllowWhitespaceLiterals() proprietà è impostata su false in modo che lo spazio vuoto venga sempre ignorato. Utilizzare il GetChildControlType metodo per determinare il tipo dei HtmlSelect controlli figlio del controllo.

Note per gli eredi

Per creare un generatore di controlli personalizzato per un HtmlSelect controllo, è necessario ereditare da questa classe.

Costruttori

Nome Descrizione
HtmlSelectBuilder()

Inizializza una nuova istanza della classe HtmlSelectBuilder.

Proprietà

Nome Descrizione
BindingContainerBuilder

Ottiene il generatore di controlli che corrisponde al contenitore di associazione per il controllo creato da questo generatore.

(Ereditato da ControlBuilder)
BindingContainerType

Ottiene il tipo del contenitore di associazione per il controllo creato da questo generatore.

(Ereditato da ControlBuilder)
ComplexPropertyEntries

Ottiene una raccolta di voci di proprietà complesse.

(Ereditato da ControlBuilder)
ControlType

Ottiene l'oggetto Type per il controllo da creare.

(Ereditato da ControlBuilder)
CurrentFilterResolutionService

Ottiene un IFilterResolutionService oggetto utilizzato per gestire i servizi correlati al filtro dei dispositivi durante l'analisi e la persistenza dei controlli nella finestra di progettazione.

(Ereditato da ControlBuilder)
DeclareType

Ottiene il tipo che verrà utilizzato dalla generazione di codice per dichiarare il controllo.

(Ereditato da ControlBuilder)
FChildrenAsProperties

Ottiene un valore che determina se il controllo dispone di un ParseChildrenAttribute oggetto con ChildrenAsProperties impostato su true.

(Ereditato da ControlBuilder)
FIsNonParserAccessor

Ottiene un valore che determina se il controllo implementa l'interfaccia IParserAccessor .

(Ereditato da ControlBuilder)
HasAspCode

Ottiene un valore che indica se il controllo contiene blocchi di codice.

(Ereditato da ControlBuilder)
ID

Ottiene o imposta la proprietà dell'identificatore per il controllo da compilare.

(Ereditato da ControlBuilder)
InDesigner

Restituisce un valore che indica se l'oggetto ControlBuilder è in esecuzione nella finestra di progettazione.

(Ereditato da ControlBuilder)
InPageTheme

Ottiene un valore booleano che indica se questo ControlBuilder oggetto viene utilizzato per generare temi di pagina.

(Ereditato da ControlBuilder)
ItemType

Ottiene il tipo impostato nel contenitore di associazione.

(Ereditato da ControlBuilder)
Localize

Ottiene un valore booleano che indica se il controllo creato da questo ControlBuilder oggetto è localizzato.

(Ereditato da ControlBuilder)
NamingContainerType

Ottiene il tipo del contenitore di denominazione per il controllo creato da questo generatore.

(Ereditato da ControlBuilder)
PageVirtualPath

Ottiene il percorso virtuale di una pagina da compilare da questa ControlBuilder istanza.

(Ereditato da ControlBuilder)
Parser

Ottiene l'oggetto responsabile dell'analisi TemplateParser del controllo.

(Ereditato da ControlBuilder)
ServiceProvider

Ottiene l'oggetto servizio per questo ControlBuilder oggetto .

(Ereditato da ControlBuilder)
SubBuilders

Ottiene un elenco di oggetti figlio ControlBuilder per questo ControlBuilder oggetto.

(Ereditato da ControlBuilder)
TagName

Ottiene il nome del tag per il controllo da compilare.

(Ereditato da ControlBuilder)
TemplatePropertyEntries

Ottiene una raccolta di voci di proprietà del modello.

(Ereditato da ControlBuilder)
ThemeResolutionService

Ottiene un IThemeResolutionService oggetto utilizzato in fase di progettazione per gestire temi e interfacce di controllo.

(Ereditato da ControlBuilder)

Metodi

Nome Descrizione
AllowWhitespaceLiterals()

Determina se i valori letterali dello spazio vuoto in un HtmlSelect controllo devono essere elaborati o ignorati.

AppendLiteralString(String)

Aggiunge il contenuto letterale specificato a un controllo . Questo metodo viene chiamato dal framework di pagina ASP.NET.

(Ereditato da ControlBuilder)
AppendSubBuilder(ControlBuilder)

Aggiunge generatori all'oggetto ControlBuilder per tutti i controlli figlio che appartengono al controllo contenitore.

(Ereditato da ControlBuilder)
BuildObject()

Compila un'istanza in fase di progettazione del controllo a cui fa riferimento questo ControlBuilder oggetto.

(Ereditato da ControlBuilder)
CloseControl()

Chiamato dal parser per informare il generatore che l'analisi dei tag di apertura e chiusura del controllo è stata completata.

(Ereditato da ControlBuilder)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetChildControlType(String, IDictionary)

Ottiene l'oggetto Type per i HtmlSelect controlli figlio del controllo.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetObjectPersistData()

Crea l'oggetto ObjectPersistData per questo ControlBuilder oggetto.

(Ereditato da ControlBuilder)
GetResourceKey()

Recupera la chiave di risorsa per questo ControlBuilder oggetto.

(Ereditato da ControlBuilder)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
HasBody()

Determina se un controllo dispone sia di un tag di apertura che di chiusura. Questo metodo viene chiamato dal framework di pagina ASP.NET.

(Ereditato da ControlBuilder)
HtmlDecodeLiterals()

Determina se la stringa letterale di un controllo HTML deve essere decodificata in FORMATO HTML. Questo metodo viene chiamato dal framework di pagina ASP.NET.

(Ereditato da ControlBuilder)
Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary)

Inizializza l'oggetto per l'utilizzo ControlBuilder dopo la creazione di un'istanza. Questo metodo viene chiamato dal framework di pagina ASP.NET.

(Ereditato da ControlBuilder)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
NeedsTagInnerText()

Determina se il generatore di controlli deve ottenere il testo interno. In tal caso, è necessario chiamare il SetTagInnerText(String) metodo . Questo metodo viene chiamato dal framework di pagina ASP.NET.

(Ereditato da ControlBuilder)
OnAppendToParentBuilder(ControlBuilder)

Notifica all'oggetto ControlBuilder che viene aggiunto a un generatore di controlli padre.

(Ereditato da ControlBuilder)
ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod)

Consente ai generatori di controlli personalizzati di accedere al Code Document Object Model (CodeDom) generato e di inserire e modificare il codice durante il processo di analisi e compilazione dei controlli.

(Ereditato da ControlBuilder)
SetResourceKey(String)

Imposta la chiave di risorsa per questo ControlBuilder oggetto.

(Ereditato da ControlBuilder)
SetServiceProvider(IServiceProvider)

Imposta l'oggetto servizio per questo ControlBuilder oggetto .

(Ereditato da ControlBuilder)
SetTagInnerText(String)

Fornisce l'oggetto ControlBuilder con il testo interno del tag di controllo.

(Ereditato da ControlBuilder)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche