HtmlSelectBuilder Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Interage com o analisador para criar um controle 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
- Herança
Exemplos
O exemplo de código a seguir demonstra como criar um controle personalizado HtmlSelectBuilder que define dois tipos de <option>
elementos filho de um controle personalizado HtmlSelect e processa 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
Comentários
O HtmlSelectBuilder controle interage com o analisador de páginas para criar um HtmlSelect controle. Use o HtmlSelectBuilder controle para personalizar a análise de um HtmlSelect controle.
A AllowWhitespaceLiterals propriedade é definida para false
que o espaço em branco seja sempre ignorado. Use o GetChildControlType método para determinar o tipo de HtmlSelect controles filho do controle.
Notas aos Herdeiros
Para criar um construtor de controle personalizado para um HtmlSelect controle, você precisa herdar dessa classe.
Construtores
HtmlSelectBuilder() |
Inicializa uma nova instância da classe HtmlSelectBuilder. |
Propriedades
BindingContainerBuilder |
Obtém o construtor de controle que corresponde ao contêiner de associação para o controle que esse construtor cria. (Herdado de ControlBuilder) |
BindingContainerType |
Obtém o tipo do contêiner de associação para o controle que esse construtor cria. (Herdado de ControlBuilder) |
ComplexPropertyEntries |
Obtém uma coleção de entradas de propriedade complexa. (Herdado de ControlBuilder) |
ControlType |
Obtém o Type para o controle a ser criado. (Herdado de ControlBuilder) |
CurrentFilterResolutionService |
Obtém um objeto IFilterResolutionService que é usado para gerenciar serviços relacionados ao filtro de dispositivo ao analisar e persistir controles no designer. (Herdado de ControlBuilder) |
DeclareType |
Obtém o tipo que será usado pela geração de código para declarar o controle. (Herdado de ControlBuilder) |
FChildrenAsProperties |
Obtém um valor que determina se o controle tem um ParseChildrenAttribute com ChildrenAsProperties definido como |
FIsNonParserAccessor |
Obtém um valor que determina se o controle implementa a interface IParserAccessor. (Herdado de ControlBuilder) |
HasAspCode |
Obtém um valor que indica se o controle contém algum bloco de código. (Herdado de ControlBuilder) |
ID |
Obtém ou define a propriedade do identificador para o controle a ser criado. (Herdado de ControlBuilder) |
InDesigner |
Retorna se o ControlBuilder está sendo executado no designer. (Herdado de ControlBuilder) |
InPageTheme |
Obtém um valor booliano que indica se este objeto ControlBuilder é usado para gerar os temas de página. (Herdado de ControlBuilder) |
ItemType |
Obtém o tipo definido no contêiner de associação. (Herdado de ControlBuilder) |
Localize |
Obtém um valor booliano que indica se o controle criado por este objeto ControlBuilder está localizado. (Herdado de ControlBuilder) |
NamingContainerType |
Obtém o tipo do contêiner de nomenclatura para o controle que esse construtor cria. (Herdado de ControlBuilder) |
PageVirtualPath |
Obtém o caminho virtual de uma página a ser criada por esta instância ControlBuilder. (Herdado de ControlBuilder) |
Parser |
Obtém o TemplateParser responsável por analisar o controle. (Herdado de ControlBuilder) |
ServiceProvider |
Obtém o objeto de serviço para esse objeto ControlBuilder. (Herdado de ControlBuilder) |
SubBuilders |
Obtém uma lista de objetos ControlBuilder filho para esse objeto ControlBuilder. (Herdado de ControlBuilder) |
TagName |
Obtém o nome da marca para o controle a ser criado. (Herdado de ControlBuilder) |
TemplatePropertyEntries |
Obtém uma coleção de entradas de propriedade de modelo. (Herdado de ControlBuilder) |
ThemeResolutionService |
Obtém um objeto IThemeResolutionService que é usado no tempo de design para gerenciar os temas e capas do controle. (Herdado de ControlBuilder) |
Métodos
AllowWhitespaceLiterals() |
Determina se os literais de espaço em branco em um controle HtmlSelect devem ser processados ou ignorados. |
AppendLiteralString(String) |
Adiciona o conteúdo literal especificado a um controle. Esse método é chamado pela estrutura de página ASP.NET. (Herdado de ControlBuilder) |
AppendSubBuilder(ControlBuilder) |
Adiciona construtores ao objeto ControlBuilder para quaisquer controles filho que pertençam ao controle de contêiner. (Herdado de ControlBuilder) |
BuildObject() |
Cria uma instância de tempo de design do controle que é referenciado por esse objeto ControlBuilder. (Herdado de ControlBuilder) |
CloseControl() |
Chamado pelo analisador para informar o construtor que a análise das marcas de abertura e fechamento do controle está concluída. (Herdado de ControlBuilder) |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetChildControlType(String, IDictionary) |
Obtém o Type para os controles filho do controle HtmlSelect. |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetObjectPersistData() |
Cria o objeto ObjectPersistData para este objeto ControlBuilder. (Herdado de ControlBuilder) |
GetResourceKey() |
Recupera a chave de recurso para este objeto ControlBuilder. (Herdado de ControlBuilder) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
HasBody() |
Determina se um controle tem uma marca de abertura e de fechamento. Esse método é chamado pela estrutura de página ASP.NET. (Herdado de ControlBuilder) |
HtmlDecodeLiterals() |
Determina se a cadeia de caracteres literal de um controle HTML deve ser decodificada para HTML. Esse método é chamado pela estrutura de página ASP.NET. (Herdado de ControlBuilder) |
Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary) |
Inicializa o ControlBuilder para uso após ele ser instanciado. Esse método é chamado pela estrutura de página ASP.NET. (Herdado de ControlBuilder) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
NeedsTagInnerText() |
Determina se o construtor de controle precisa obter seu texto interno. Se sim, o método SetTagInnerText(String) deve ser chamado. Esse método é chamado pela estrutura de página ASP.NET. (Herdado de ControlBuilder) |
OnAppendToParentBuilder(ControlBuilder) |
Notifica o ControlBuilder que está sendo adicionado a um construtor de controle pai. (Herdado de ControlBuilder) |
ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod) |
Permite que os criadores de controle personalizado acessem o CodeDom (Modelo de Objeto do Documento de Código) gerado e insiram e modifiquem o código durante o processo de análise e criação de controles. (Herdado de ControlBuilder) |
SetResourceKey(String) |
Define a chave de recurso para este objeto ControlBuilder. (Herdado de ControlBuilder) |
SetServiceProvider(IServiceProvider) |
Define o objeto de serviço para esse objeto ControlBuilder. (Herdado de ControlBuilder) |
SetTagInnerText(String) |
Fornece o ControlBuilder com o texto interno da marca do controle. (Herdado de ControlBuilder) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |