HtmlSelectBuilder Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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 ChildrenAsProperties |
| 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) |