Partager via


HtmlSelectBuilder Classe

Définition

Interagit avec l'analyseur pour générer un contrôle 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
Héritage
HtmlSelectBuilder

Exemples

L’exemple de code suivant montre comment créer un contrôle personnalisé HtmlSelectBuilder qui définit deux types d’éléments <option> enfants d’un contrôle personnalisé HtmlSelect , puis traite chaque type différemment.

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

Remarques

Le HtmlSelectBuilder contrôle interagit avec l’analyseur de page pour générer un HtmlSelect contrôle. Utilisez le HtmlSelectBuilder contrôle pour personnaliser l’analyse d’un HtmlSelect contrôle.

La AllowWhitespaceLiterals propriété est définie pour false que l’espace blanc soit toujours ignoré. Utilisez la GetChildControlType méthode pour déterminer le type des HtmlSelect contrôles enfants du contrôle.

Notes pour les héritiers

Pour créer un générateur de contrôles personnalisé pour un HtmlSelect contrôle, vous devez hériter de cette classe.

Constructeurs

HtmlSelectBuilder()

Initialise une nouvelle instance de la classe HtmlSelectBuilder.

Propriétés

BindingContainerBuilder

Obtient le générateur de contrôles qui correspond au conteneur de liaison pour le contrôle que ce concepteur crée.

(Hérité de ControlBuilder)
BindingContainerType

Reçoit le type du conteneur de liaison pour le contrôle que ce générateur crée.

(Hérité de ControlBuilder)
ComplexPropertyEntries

Obtient une collection d'entrées de propriétés complexes.

(Hérité de ControlBuilder)
ControlType

Obtient Type pour le contrôle à créer.

(Hérité de ControlBuilder)
CurrentFilterResolutionService

Obtient un objet IFilterResolutionService utilisé pour gérer des services liés au filtre pour appareil mobile lorsque des contrôles sont analysés et rendus persistants dans le concepteur.

(Hérité de ControlBuilder)
DeclareType

Obtient le type qui sera utilisé par la génération de code pour déclarer le contrôle.

(Hérité de ControlBuilder)
FChildrenAsProperties

Obtient une valeur qui détermine si le contrôle a ParseChildrenAttribute avec ChildrenAsProperties défini sur true.

(Hérité de ControlBuilder)
FIsNonParserAccessor

Obtient une valeur qui détermine si le contrôle implémente l'interface IParserAccessor.

(Hérité de ControlBuilder)
HasAspCode

Obtient une valeur indiquant si le contrôle contient des blocs de code.

(Hérité de ControlBuilder)
ID

Obtient ou définit la propriété identificateur du contrôle à générer.

(Hérité de ControlBuilder)
InDesigner

Retourne si ControlBuilder s'exécute dans le concepteur.

(Hérité de ControlBuilder)
InPageTheme

Obtient une valeur Boolean qui indique si cet objet ControlBuilder est utilisé pour générer des thèmes de page.

(Hérité de ControlBuilder)
ItemType

Obtient le type défini sur le conteneur de liaison.

(Hérité de ControlBuilder)
Localize

Obtient une valeur Boolean qui indique si le contrôle créé par cet objet ControlBuilder est localisé.

(Hérité de ControlBuilder)
NamingContainerType

Reçoit le type du conteneur d'attribution de noms pour le contrôle que ce générateur crée.

(Hérité de ControlBuilder)
PageVirtualPath

Obtient le chemin d'accès virtuel d'une page qui doit être générée par cette instance de ControlBuilder.

(Hérité de ControlBuilder)
Parser

Obtient le TemplateParser responsable de l'analyse du contrôle.

(Hérité de ControlBuilder)
ServiceProvider

Obtient l'objet de service pour cet objet ControlBuilder.

(Hérité de ControlBuilder)
SubBuilders

Obtient une liste d'objets ControlBuilder enfants pour cet objet ControlBuilder.

(Hérité de ControlBuilder)
TagName

Obtient le nom de la balise pour le contrôle à générer.

(Hérité de ControlBuilder)
TemplatePropertyEntries

Obtient une collection d'entrées de propriétés de modèle.

(Hérité de ControlBuilder)
ThemeResolutionService

Obtient un objet IThemeResolutionService utilisé au moment du design pour gérer des thèmes et des apparences de contrôle.

(Hérité de ControlBuilder)

Méthodes

AllowWhitespaceLiterals()

Détermine si les littéraux du contrôle HtmlSelect qui sont des espaces blancs doivent être traités ou ignorés.

AppendLiteralString(String)

Ajoute le contenu littéral spécifié à un contrôle. Cette méthode est appelée par l’infrastructure de page ASP.NET.

(Hérité de ControlBuilder)
AppendSubBuilder(ControlBuilder)

Ajoute des générateurs à l’objet ControlBuilder pour les contrôles enfants qui appartiennent au contrôle conteneur.

(Hérité de ControlBuilder)
BuildObject()

Génère au moment du design une instance du contrôle référencé par cet objet ControlBuilder.

(Hérité de ControlBuilder)
CloseControl()

Appelé par l'analyseur pour informer le générateur que l'analyse des balises d'ouverture et de fermeture du contrôle est terminée.

(Hérité de ControlBuilder)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetChildControlType(String, IDictionary)

Obtient Type pour les contrôles enfants du contrôle HtmlSelect.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetObjectPersistData()

Crée l'objet ObjectPersistData pour cet objet ControlBuilder.

(Hérité de ControlBuilder)
GetResourceKey()

Récupère la clé de ressource pour cet objet ControlBuilder.

(Hérité de ControlBuilder)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
HasBody()

Détermine si un contrôle a les deux balises, d'ouverture et de fermeture. Cette méthode est appelée par l’infrastructure de page ASP.NET.

(Hérité de ControlBuilder)
HtmlDecodeLiterals()

Détermine si la chaîne littérale d'un contrôle HTML doit être décodée en HTML. Cette méthode est appelée par l’infrastructure de page ASP.NET.

(Hérité de ControlBuilder)
Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary)

Initialise le ControlBuilder pour l'utiliser après son instanciation. Cette méthode est appelée par l’infrastructure de page ASP.NET.

(Hérité de ControlBuilder)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
NeedsTagInnerText()

Détermine si le générateur de contrôles a besoin d'obtenir son texte interne. Si c'est le cas, il faut appeler la méthode SetTagInnerText(String). Cette méthode est appelée par l’infrastructure de page ASP.NET.

(Hérité de ControlBuilder)
OnAppendToParentBuilder(ControlBuilder)

Avertit ControlBuilder qu'il s'ajoute à un générateur de contrôles parent.

(Hérité de ControlBuilder)
ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod)

Permet aux générateurs de contrôles personnalisés d'accéder au modèle CodeDom (Code Document Object Model) généré, ainsi que d'insérer et de modifier du code au cours du processus d'analyse et de génération des contrôles.

(Hérité de ControlBuilder)
SetResourceKey(String)

Définit la clé de ressource pour cet objet ControlBuilder.

(Hérité de ControlBuilder)
SetServiceProvider(IServiceProvider)

Définit l'objet de service pour cet objet ControlBuilder.

(Hérité de ControlBuilder)
SetTagInnerText(String)

Fournit à ControlBuilder le texte interne de la balise du contrôle.

(Hérité de ControlBuilder)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi