Udostępnij za pośrednictwem


HtmlSelectBuilder Klasa

Definicja

Wchodzi w interakcję z analizatorem w celu utworzenia kontrolki 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
Dziedziczenie
HtmlSelectBuilder

Przykłady

W poniższym przykładzie kodu pokazano, jak utworzyć kontrolkę niestandardową, która definiuje dwa typy <option> elementów podrzędnych kontrolki niestandardowej HtmlSelectBuilderHtmlSelect, a następnie przetwarza każdy typ inaczej.

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

Uwagi

Kontrolka HtmlSelectBuilder współdziała z analizatorem strony w celu utworzenia kontrolki HtmlSelect . Użyj kontrolki, HtmlSelectBuilder aby dostosować analizowanie kontrolki HtmlSelect .

Właściwość jest ustawiona AllowWhitespaceLiterals tak false , aby odstęp był zawsze ignorowany. GetChildControlType Użyj metody , aby określić typ kontrolek podrzędnych HtmlSelect kontrolki.

Uwagi dotyczące dziedziczenia

Aby utworzyć niestandardowego konstruktora kontrolek dla kontrolki HtmlSelect , musisz dziedziczyć z tej klasy.

Konstruktory

HtmlSelectBuilder()

Inicjuje nowe wystąpienie klasy HtmlSelectBuilder.

Właściwości

BindingContainerBuilder

Pobiera konstruktora kontrolek, który odpowiada kontenerowi powiązania dla kontrolki tworzonej przez tego konstruktora.

(Odziedziczone po ControlBuilder)
BindingContainerType

Pobiera typ kontenera powiązania dla kontrolki tworzonej przez tego konstruktora.

(Odziedziczone po ControlBuilder)
ComplexPropertyEntries

Pobiera kolekcję złożonych wpisów właściwości.

(Odziedziczone po ControlBuilder)
ControlType

Pobiera kontrolkę Type do utworzenia.

(Odziedziczone po ControlBuilder)
CurrentFilterResolutionService

IFilterResolutionService Pobiera obiekt używany do zarządzania usługami powiązanymi z filtrowaniem urządzeń podczas analizowania i utrwalania kontrolek w projektancie.

(Odziedziczone po ControlBuilder)
DeclareType

Pobiera typ, który będzie używany przez generowanie kodu w celu zadeklarowania kontrolki.

(Odziedziczone po ControlBuilder)
FChildrenAsProperties

Pobiera wartość określającą, czy kontrolka ma wartość z ustawioną wartością ParseChildrenAttributeChildrenAsPropertiestrue.

(Odziedziczone po ControlBuilder)
FIsNonParserAccessor

Pobiera wartość określającą, czy kontrolka implementuje IParserAccessor interfejs.

(Odziedziczone po ControlBuilder)
HasAspCode

Pobiera wartość wskazującą, czy kontrolka zawiera jakiekolwiek bloki kodu.

(Odziedziczone po ControlBuilder)
ID

Pobiera lub ustawia właściwość identyfikatora kontrolki do skompilowania.

(Odziedziczone po ControlBuilder)
InDesigner

Zwraca, ControlBuilder czy element jest uruchomiony w projektancie.

(Odziedziczone po ControlBuilder)
InPageTheme

Pobiera wartość logiczną wskazującą, czy ten ControlBuilder obiekt jest używany do generowania motywów stron.

(Odziedziczone po ControlBuilder)
ItemType

Pobiera typ ustawiony w kontenerze powiązania.

(Odziedziczone po ControlBuilder)
Localize

Pobiera wartość logiczną wskazującą, czy kontrolka utworzona przez ten ControlBuilder obiekt jest zlokalizowana.

(Odziedziczone po ControlBuilder)
NamingContainerType

Pobiera typ kontenera nazewnictwa dla kontrolki tworzonej przez tego konstruktora.

(Odziedziczone po ControlBuilder)
PageVirtualPath

Pobiera ścieżkę wirtualną strony do skompilowania przez to ControlBuilder wystąpienie.

(Odziedziczone po ControlBuilder)
Parser

TemplateParser Pobiera element odpowiedzialny za analizowanie kontrolki.

(Odziedziczone po ControlBuilder)
ServiceProvider

Pobiera obiekt usługi dla tego ControlBuilder obiektu.

(Odziedziczone po ControlBuilder)
SubBuilders

Pobiera listę obiektów podrzędnych ControlBuilder dla tego ControlBuilder obiektu.

(Odziedziczone po ControlBuilder)
TagName

Pobiera nazwę tagu kontrolki do skompilowania.

(Odziedziczone po ControlBuilder)
TemplatePropertyEntries

Pobiera kolekcję wpisów właściwości szablonu.

(Odziedziczone po ControlBuilder)
ThemeResolutionService

IThemeResolutionService Pobiera obiekt, który jest używany w czasie projektowania do zarządzania motywami i skórami sterowania.

(Odziedziczone po ControlBuilder)

Metody

AllowWhitespaceLiterals()

Określa, czy literały białych znaków w kontrolce HtmlSelect mają być przetwarzane, czy ignorowane.

AppendLiteralString(String)

Dodaje określoną zawartość literału do kontrolki. Ta metoda jest wywoływana przez platformę stron ASP.NET.

(Odziedziczone po ControlBuilder)
AppendSubBuilder(ControlBuilder)

Dodaje konstruktorów do ControlBuilder obiektu dla wszystkich kontrolek podrzędnych należących do kontrolki kontenera.

(Odziedziczone po ControlBuilder)
BuildObject()

Tworzy wystąpienie kontrolki w czasie projektowania, do którego odwołuje się ten ControlBuilder obiekt.

(Odziedziczone po ControlBuilder)
CloseControl()

Wywołana przez analizator, aby poinformować konstruktora, że analizowanie tagów otwierania i zamykania kontrolki jest zakończone.

(Odziedziczone po ControlBuilder)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetChildControlType(String, IDictionary)

Type Uzyskuje kontrolkę HtmlSelect dla kontrolek podrzędnych kontrolki.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetObjectPersistData()

ObjectPersistData Tworzy obiekt dla tego ControlBuilder obiektu.

(Odziedziczone po ControlBuilder)
GetResourceKey()

Pobiera klucz zasobu dla tego ControlBuilder obiektu.

(Odziedziczone po ControlBuilder)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
HasBody()

Określa, czy kontrolka ma zarówno tag otwierający, jak i zamykający. Ta metoda jest wywoływana przez platformę stron ASP.NET.

(Odziedziczone po ControlBuilder)
HtmlDecodeLiterals()

Określa, czy ciąg literału kontrolki HTML musi być zdekodowany w formacie HTML. Ta metoda jest wywoływana przez platformę stron ASP.NET.

(Odziedziczone po ControlBuilder)
Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary)

Inicjuje element do użycia po utworzeniu ControlBuilder wystąpienia. Ta metoda jest wywoływana przez platformę stron ASP.NET.

(Odziedziczone po ControlBuilder)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
NeedsTagInnerText()

Określa, czy konstruktor kontrolki musi uzyskać jego tekst wewnętrzny. Jeśli tak, należy wywołać metodę SetTagInnerText(String) . Ta metoda jest wywoływana przez platformę stron ASP.NET.

(Odziedziczone po ControlBuilder)
OnAppendToParentBuilder(ControlBuilder)

ControlBuilder Powiadamia o tym, że jest on dodawany do nadrzędnego konstruktora kontrolek.

(Odziedziczone po ControlBuilder)
ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod)

Umożliwia niestandardowym konstruktorom kontrolek uzyskiwanie dostępu do wygenerowanego modelu obiektów dokumentów kodu (CodeDom) oraz wstawianie i modyfikowanie kodu podczas procesu analizowania i kompilowania kontrolek.

(Odziedziczone po ControlBuilder)
SetResourceKey(String)

Ustawia klucz zasobu dla tego ControlBuilder obiektu.

(Odziedziczone po ControlBuilder)
SetServiceProvider(IServiceProvider)

Ustawia obiekt usługi dla tego ControlBuilder obiektu.

(Odziedziczone po ControlBuilder)
SetTagInnerText(String)

ControlBuilder Zawiera tekst wewnętrzny tagu kontrolki.

(Odziedziczone po ControlBuilder)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też