Compartir por


HtmlSelectBuilder Clase

Definición

Interactúa con el analizador para crear un HtmlSelect control.

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
Herencia
HtmlSelectBuilder

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear un control personalizado HtmlSelectBuilder que define dos tipos de <option> elementos secundarios de un control personalizado HtmlSelect y, a continuación, procesa cada tipo de forma diferente.

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

Comentarios

El HtmlSelectBuilder control interactúa con el analizador de páginas para crear un HtmlSelect control. Use el HtmlSelectBuilder control para personalizar el análisis de un HtmlSelect control.

La AllowWhitespaceLiterals() propiedad se establece en false para que siempre se omita el espacio en blanco. Use el GetChildControlType método para determinar el tipo de los HtmlSelect controles secundarios del control.

Notas a los desarrolladores de herederos

Para crear un generador de controles personalizado para un HtmlSelect control, debe heredar de esta clase.

Constructores

Nombre Description
HtmlSelectBuilder()

Inicializa una nueva instancia de la clase HtmlSelectBuilder.

Propiedades

Nombre Description
BindingContainerBuilder

Obtiene el generador de controles que corresponde al contenedor de enlace para el control que crea este generador.

(Heredado de ControlBuilder)
BindingContainerType

Obtiene el tipo del contenedor de enlace para el control que crea este generador.

(Heredado de ControlBuilder)
ComplexPropertyEntries

Obtiene una colección de entradas de propiedad complejas.

(Heredado de ControlBuilder)
ControlType

Obtiene para Type el control que se va a crear.

(Heredado de ControlBuilder)
CurrentFilterResolutionService

Obtiene un IFilterResolutionService objeto que se usa para administrar servicios relacionados con filtros de dispositivo al analizar y conservar controles en el diseñador.

(Heredado de ControlBuilder)
DeclareType

Obtiene el tipo que usará la generación de código para declarar el control.

(Heredado de ControlBuilder)
FChildrenAsProperties

Obtiene un valor que determina si el control tiene un ParseChildrenAttribute objeto con establecido en ChildrenAsPropertiestrue.

(Heredado de ControlBuilder)
FIsNonParserAccessor

Obtiene un valor que determina si el control implementa la IParserAccessor interfaz.

(Heredado de ControlBuilder)
HasAspCode

Obtiene un valor que indica si el control contiene bloques de código.

(Heredado de ControlBuilder)
ID

Obtiene o establece la propiedad de identificador del control que se va a compilar.

(Heredado de ControlBuilder)
InDesigner

Devuelve si ControlBuilder se ejecuta en el diseñador.

(Heredado de ControlBuilder)
InPageTheme

Obtiene un valor booleano que indica si este ControlBuilder objeto se usa para generar temas de página.

(Heredado de ControlBuilder)
ItemType

Obtiene el tipo establecido en el contenedor de enlace.

(Heredado de ControlBuilder)
Localize

Obtiene un valor booleano que indica si se localiza el control creado por este ControlBuilder objeto.

(Heredado de ControlBuilder)
NamingContainerType

Obtiene el tipo del contenedor de nomenclatura para el control que crea este generador.

(Heredado de ControlBuilder)
PageVirtualPath

Obtiene la ruta de acceso virtual de una página que va a compilar esta ControlBuilder instancia.

(Heredado de ControlBuilder)
Parser

Obtiene el TemplateParser responsable de analizar el control.

(Heredado de ControlBuilder)
ServiceProvider

Obtiene el objeto de servicio de este ControlBuilder objeto.

(Heredado de ControlBuilder)
SubBuilders

Obtiene una lista de objetos secundarios ControlBuilder para este ControlBuilder objeto.

(Heredado de ControlBuilder)
TagName

Obtiene el nombre de etiqueta del control que se va a compilar.

(Heredado de ControlBuilder)
TemplatePropertyEntries

Obtiene una colección de entradas de propiedad de plantilla.

(Heredado de ControlBuilder)
ThemeResolutionService

Obtiene un IThemeResolutionService objeto que se usa en tiempo de diseño para administrar temas y máscaras de control.

(Heredado de ControlBuilder)

Métodos

Nombre Description
AllowWhitespaceLiterals()

Determina si los literales de espacio en blanco de un HtmlSelect control se van a procesar o omitir.

AppendLiteralString(String)

Agrega el contenido literal especificado a un control . El marco de ASP.NET página llama a este método.

(Heredado de ControlBuilder)
AppendSubBuilder(ControlBuilder)

Agrega generadores al ControlBuilder objeto para los controles secundarios que pertenecen al control de contenedor.

(Heredado de ControlBuilder)
BuildObject()

Compila una instancia en tiempo de diseño del control al que hace referencia este ControlBuilder objeto.

(Heredado de ControlBuilder)
CloseControl()

Llamado por el analizador para informar al generador de que se ha completado el análisis de las etiquetas de apertura y cierre del control.

(Heredado de ControlBuilder)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetChildControlType(String, IDictionary)

Obtiene para Type los HtmlSelect controles secundarios del control.

GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetObjectPersistData()

Crea el ObjectPersistData objeto para este ControlBuilder objeto.

(Heredado de ControlBuilder)
GetResourceKey()

Recupera la clave de recurso de este ControlBuilder objeto.

(Heredado de ControlBuilder)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
HasBody()

Determina si un control tiene una etiqueta de apertura y cierre. El marco de ASP.NET página llama a este método.

(Heredado de ControlBuilder)
HtmlDecodeLiterals()

Determina si la cadena literal de un control HTML debe descodificarse en HTML. El marco de ASP.NET página llama a este método.

(Heredado de ControlBuilder)
Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary)

Inicializa el ControlBuilder objeto para su uso después de crear una instancia de . El marco de ASP.NET página llama a este método.

(Heredado de ControlBuilder)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
NeedsTagInnerText()

Determina si el generador de controles necesita obtener su texto interno. Si es así, se debe llamar al SetTagInnerText(String) método . El marco de ASP.NET página llama a este método.

(Heredado de ControlBuilder)
OnAppendToParentBuilder(ControlBuilder)

Notifica a ControlBuilder que se va a agregar a un generador de controles primario.

(Heredado de ControlBuilder)
ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod)

Permite a los generadores de controles personalizados acceder al modelo de objetos de documento de código (CodeDom) generado e insertar y modificar código durante el proceso de análisis y creación de controles.

(Heredado de ControlBuilder)
SetResourceKey(String)

Establece la clave de recurso para este ControlBuilder objeto.

(Heredado de ControlBuilder)
SetServiceProvider(IServiceProvider)

Establece el objeto de servicio para este ControlBuilder objeto.

(Heredado de ControlBuilder)
SetTagInnerText(String)

Proporciona el ControlBuilder elemento con el texto interno de la etiqueta de control.

(Heredado de ControlBuilder)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también