Sdílet prostřednictvím


HtmlSelectBuilder Třída

Definice

Komunikuje s analyzátorem a vytváří HtmlSelect ovládací prvek.

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
Dědičnost
HtmlSelectBuilder

Příklady

Následující příklad kódu ukazuje, jak vytvořit vlastní HtmlSelectBuilder ovládací prvek, který definuje dva typy podřízených elementů <option> vlastního HtmlSelect ovládacího prvku a pak zpracuje každý typ odlišně.

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

Poznámky

Ovládací HtmlSelectBuilder prvek komunikuje s analyzátorem stránky a sestaví HtmlSelect ovládací prvek. HtmlSelectBuilder Pomocí ovládacího prvku můžete přizpůsobit analýzu HtmlSelect ovládacího prvku.

Vlastnost je nastavená AllowWhitespaceLiterals() tak false , aby se prázdné znaky vždy ignorovaly. GetChildControlType Pomocí metody určete typ podřízených ovládacích HtmlSelect prvků ovládacího prvku.

Poznámky pro dědice

Chcete-li vytvořit vlastní tvůrce ovládacích prvků pro HtmlSelect ovládací prvek, musíte dědit z této třídy.

Konstruktory

Name Description
HtmlSelectBuilder()

Inicializuje novou instanci HtmlSelectBuilder třídy.

Vlastnosti

Name Description
BindingContainerBuilder

Získá tvůrce ovládacích prvků, který odpovídá kontejner vazby pro ovládací prvek, který tento tvůrce vytvoří.

(Zděděno od ControlBuilder)
BindingContainerType

Získá typ kontejner vazby pro ovládací prvek, který tento tvůrce vytvoří.

(Zděděno od ControlBuilder)
ComplexPropertyEntries

Získá kolekci komplexních položek vlastností.

(Zděděno od ControlBuilder)
ControlType

Type Získá pro ovládací prvek, který se má vytvořit.

(Zděděno od ControlBuilder)
CurrentFilterResolutionService

IFilterResolutionService Získá objekt, který se používá ke správě služeb souvisejících s filtrováním zařízení při analýze a zachování ovládacích prvků v návrháři.

(Zděděno od ControlBuilder)
DeclareType

Získá typ, který bude používán generováním kódu k deklaraci ovládacího prvku.

(Zděděno od ControlBuilder)
FChildrenAsProperties

Získá hodnotu, která určuje, zda má ovládací prvek s ChildrenAsProperties nastavenou ParseChildrenAttribute na true.

(Zděděno od ControlBuilder)
FIsNonParserAccessor

Získá hodnotu, která určuje, zda ovládací prvek implementuje IParserAccessor rozhraní.

(Zděděno od ControlBuilder)
HasAspCode

Získá hodnotu označující, zda ovládací prvek obsahuje jakékoli bloky kódu.

(Zděděno od ControlBuilder)
ID

Získá nebo nastaví identifikátor vlastnost pro ovládací prvek, který má být sestaven.

(Zděděno od ControlBuilder)
InDesigner

Vrátí, zda ControlBuilder je spuštěný v návrháři.

(Zděděno od ControlBuilder)
InPageTheme

Získá logickou hodnotu označující, zda se tento ControlBuilder objekt používá k vygenerování motivů stránky.

(Zděděno od ControlBuilder)
ItemType

Získá typ nastavený v kontejneru vazby.

(Zděděno od ControlBuilder)
Localize

Získá logickou hodnotu určující, zda ovládací prvek, který je vytvořen tímto ControlBuilder objektem je lokalizován.

(Zděděno od ControlBuilder)
NamingContainerType

Získá typ kontejneru pojmenování pro ovládací prvek, který tento tvůrce vytvoří.

(Zděděno od ControlBuilder)
PageVirtualPath

Získá virtuální cestu stránky, která má být vytvořena touto ControlBuilder instancí.

(Zděděno od ControlBuilder)
Parser

TemplateParser Získá zodpovědnost za analýzu ovládacího prvku.

(Zděděno od ControlBuilder)
ServiceProvider

Získá objekt služby pro tento ControlBuilder objekt.

(Zděděno od ControlBuilder)
SubBuilders

Získá seznam podřízených ControlBuilder objektů pro tento ControlBuilder objekt.

(Zděděno od ControlBuilder)
TagName

Získá název značky pro ovládací prvek, který se má sestavit.

(Zděděno od ControlBuilder)
TemplatePropertyEntries

Získá kolekci položek vlastností šablony.

(Zděděno od ControlBuilder)
ThemeResolutionService

IThemeResolutionService Získá objekt, který se používá v době návrhu ke správě řídicích motivů a skinů.

(Zděděno od ControlBuilder)

Metody

Name Description
AllowWhitespaceLiterals()

Určuje, zda mají být literály prázdných znaků v ovládacím HtmlSelect prvku zpracovány nebo ignorovány.

AppendLiteralString(String)

Přidá zadaný obsah literálu do ovládacího prvku. Tato metoda je volána rozhraním stránky ASP.NET.

(Zděděno od ControlBuilder)
AppendSubBuilder(ControlBuilder)

Přidá do objektu ControlBuilder tvůrce pro všechny podřízené ovládací prvky, které patří do ovládacího prvku kontejneru.

(Zděděno od ControlBuilder)
BuildObject()

Vytvoří instanci návrhu ovládacího prvku, který je odkazován tímto ControlBuilder objektem.

(Zděděno od ControlBuilder)
CloseControl()

Zavolá analyzátor, aby informoval tvůrce, že analýza otevírání a zavírání značek ovládacího prvku je dokončena.

(Zděděno od ControlBuilder)
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetChildControlType(String, IDictionary)

Získá podřízené TypeHtmlSelect ovládací prvky ovládacího prvku.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetObjectPersistData()

ObjectPersistData Vytvoří objekt pro tento ControlBuilder objekt.

(Zděděno od ControlBuilder)
GetResourceKey()

Načte klíč prostředku pro tento ControlBuilder objekt.

(Zděděno od ControlBuilder)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
HasBody()

Určuje, zda má ovládací prvek levou i pravou značku. Tato metoda je volána rozhraním stránky ASP.NET.

(Zděděno od ControlBuilder)
HtmlDecodeLiterals()

Určuje, zda literál řetězec ovládacího prvku HTML musí být dekódován HTML. Tato metoda je volána rozhraním stránky ASP.NET.

(Zděděno od ControlBuilder)
Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary)

Inicializuje ControlBuilder pro použití po vytvoření instance. Tato metoda je volána rozhraním stránky ASP.NET.

(Zděděno od ControlBuilder)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
NeedsTagInnerText()

Určuje, jestli tvůrce ovládacích prvků potřebuje získat vnitřní text. Pokud ano, SetTagInnerText(String) musí být volána metoda. Tato metoda je volána rozhraním stránky ASP.NET.

(Zděděno od ControlBuilder)
OnAppendToParentBuilder(ControlBuilder)

ControlBuilder Upozorní, že se přidává do nadřazeného tvůrce ovládacích prvků.

(Zděděno od ControlBuilder)
ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod)

Umožňuje vlastním tvůrcům ovládacích prvků přistupovat ke vygenerovanému modelu code Document Object Model (CodeDom) a vkládat a upravovat kód během procesu analýzy a sestavování ovládacích prvků.

(Zděděno od ControlBuilder)
SetResourceKey(String)

Nastaví klíč prostředku pro tento ControlBuilder objekt.

(Zděděno od ControlBuilder)
SetServiceProvider(IServiceProvider)

Nastaví objekt služby pro tento ControlBuilder objekt.

(Zděděno od ControlBuilder)
SetTagInnerText(String)

ControlBuilder Poskytuje vnitřní text značky ovládacího prvku.

(Zděděno od ControlBuilder)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také