HtmlSelectBuilder Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Interagisce con il parser per compilare un controllo 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
- Ereditarietà
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
HtmlSelectBuilder() |
Inizializza una nuova istanza della classe HtmlSelectBuilder. |
Proprietà
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 di 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 oggetto IFilterResolutionService che consente di gestire i servizi correlati ai filtri di periferica durante l'analisi e il mantenimento dei controlli nella finestra di progettazione. (Ereditato da ControlBuilder) |
DeclareType |
Ottiene il tipo che verrà utilizzato dalla generazione del codice per dichiarare il controllo. (Ereditato da ControlBuilder) |
FChildrenAsProperties |
Ottiene un valore che determina se il controllo ha un ParseChildrenAttribute con ChildrenAsProperties impostato su |
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à ID 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 Boolean che indica se questo oggetto ControlBuilder viene utilizzato per generare temi di pagina. (Ereditato da ControlBuilder) |
ItemType |
Ottiene il tipo impostato sul contenitore di associazione. (Ereditato da ControlBuilder) |
Localize |
Ottiene un valore Boolean che indica se il controllo creato da questo oggetto ControlBuilder è localizzato. (Ereditato da ControlBuilder) |
NamingContainerType |
Ottiene il tipo di contenitore di denominazione per il controllo creato da questo generatore. (Ereditato da ControlBuilder) |
PageVirtualPath |
Ottiene il percorso virtuale di una pagina da compilare a partire da questa istanza di ControlBuilder. (Ereditato da ControlBuilder) |
Parser |
Ottiene l'oggetto TemplateParser responsabile dell'analisi del controllo. (Ereditato da ControlBuilder) |
ServiceProvider |
Ottiene l'oggetto servizio per questo oggetto ControlBuilder. (Ereditato da ControlBuilder) |
SubBuilders |
Ottiene un elenco di oggetti figlio ControlBuilder per questo oggetto ControlBuilder. (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à di modello. (Ereditato da ControlBuilder) |
ThemeResolutionService |
Ottiene un oggetto IThemeResolutionService utilizzato in fase di progettazione per gestire i temi e le interfacce del controllo. (Ereditato da ControlBuilder) |
Metodi
AllowWhitespaceLiterals() |
Determina se i valori letterali di spazi vuoti inclusi in un controllo HtmlSelect devono essere elaborati o ignorati. |
AppendLiteralString(String) |
Aggiunge il contenuto literal specificato a un controllo. Questo metodo viene chiamato dal framework per le pagine ASP.NET. (Ereditato da ControlBuilder) |
AppendSubBuilder(ControlBuilder) |
Aggiunge generatori all'oggetto ControlBuilder per qualsiasi controllo figlio che appartiene al controllo contenitore. (Ereditato da ControlBuilder) |
BuildObject() |
Compila un'istanza in fase di progettazione del controllo a cui questo oggetto ControlBuilder fa riferimento. (Ereditato da ControlBuilder) |
CloseControl() |
Metodo chiamato dal parser per comunicare al generatore che l'analisi dei tag di apertura e di chiusura del controllo è terminata. (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 controlli figlio del controllo HtmlSelect. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetObjectPersistData() |
Crea l'oggetto ObjectPersistData per questo oggetto ControlBuilder. (Ereditato da ControlBuilder) |
GetResourceKey() |
Recupera la chiave di risorsa per questo oggetto ControlBuilder. (Ereditato da ControlBuilder) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
HasBody() |
Determina se un controllo dispone di entrambi i tag di apertura e chiusura. Questo metodo viene chiamato dal framework per le pagine ASP.NET. (Ereditato da ControlBuilder) |
HtmlDecodeLiterals() |
Determina se la stringa letterale di un controllo HTML deve essere decodificata in linguaggio HTML. Questo metodo viene chiamato dal framework per le pagine ASP.NET. (Ereditato da ControlBuilder) |
Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary) |
Inizializza l'oggetto ControlBuilder da utilizzare dopo la creazione della relativa istanza. Questo metodo viene chiamato dal framework per le pagine ASP.NET. (Ereditato da ControlBuilder) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
NeedsTagInnerText() |
Determina se il generatore di controllo deve ottenere il testo interno. In questo caso, è necessario chiamare il metodo SetTagInnerText(String). Questo metodo viene chiamato dal framework per le pagine ASP.NET. (Ereditato da ControlBuilder) |
OnAppendToParentBuilder(ControlBuilder) |
Notifica all'oggetto ControlBuilder che viene aggiunto a un generatore di controllo padre. (Ereditato da ControlBuilder) |
ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod) |
Consente a compilatori di controllo personalizzati di accedere al CodeDom (Code Document Object Model) generato e 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 oggetto ControlBuilder. (Ereditato da ControlBuilder) |
SetServiceProvider(IServiceProvider) |
Imposta l'oggetto servizio per questo oggetto ControlBuilder. (Ereditato da ControlBuilder) |
SetTagInnerText(String) |
Fornisce all'oggetto ControlBuilder il testo interno del tag di controllo. (Ereditato da ControlBuilder) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |