HtmlSelectBuilder Klass

Definition

Interagerar med parsern för att skapa en HtmlSelect kontroll.

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
Arv
HtmlSelectBuilder

Exempel

I följande kodexempel visas hur du skapar en anpassad HtmlSelectBuilder kontroll som definierar två typer av <option> underordnade element i en anpassad HtmlSelect kontroll och sedan bearbetar varje typ på olika sätt.

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

Kommentarer

Kontrollen HtmlSelectBuilder interagerar med sidparsern för att skapa en HtmlSelect kontroll. Använd kontrollen HtmlSelectBuilder för att anpassa parsningen av en HtmlSelect kontroll.

Egenskapen AllowWhitespaceLiterals() är inställd på false så att tomt utrymme alltid ignoreras. GetChildControlType Använd metoden för att fastställa typen av kontrollens HtmlSelect underordnade kontroller.

Anteckningar till arvingar

Om du vill skapa en anpassad kontrollbyggare för en HtmlSelect kontroll måste du ärva från den här klassen.

Konstruktorer

Name Description
HtmlSelectBuilder()

Initierar en ny instans av HtmlSelectBuilder klassen.

Egenskaper

Name Description
BindingContainerBuilder

Hämtar kontrollverktyget som motsvarar bindningscontainern för den kontroll som den här byggaren skapar.

(Ärvd från ControlBuilder)
BindingContainerType

Hämtar typen av bindningscontainer för den kontroll som den här byggaren skapar.

(Ärvd från ControlBuilder)
ComplexPropertyEntries

Hämtar en samling komplexa egenskapsposter.

(Ärvd från ControlBuilder)
ControlType

Type Hämtar kontrollen som ska skapas.

(Ärvd från ControlBuilder)
CurrentFilterResolutionService

Hämtar ett IFilterResolutionService objekt som används för att hantera enhetsfilterrelaterade tjänster när du parsar och bevarar kontroller i designern.

(Ärvd från ControlBuilder)
DeclareType

Hämtar den typ som ska användas av kodgenereringen för att deklarera kontrollen.

(Ärvd från ControlBuilder)
FChildrenAsProperties

Hämtar ett värde som avgör om kontrollen har ett ParseChildrenAttribute med ChildrenAsProperties inställt på true.

(Ärvd från ControlBuilder)
FIsNonParserAccessor

Hämtar ett värde som avgör om kontrollen implementerar IParserAccessor gränssnittet.

(Ärvd från ControlBuilder)
HasAspCode

Hämtar ett värde som anger om kontrollen innehåller några kodblock.

(Ärvd från ControlBuilder)
ID

Hämtar eller anger identifieraregenskapen för kontrollen som ska skapas.

(Ärvd från ControlBuilder)
InDesigner

Returnerar om ControlBuilder körs i designern.

(Ärvd från ControlBuilder)
InPageTheme

Hämtar ett booleskt värde som anger om det här ControlBuilder objektet används för att generera sidteman.

(Ärvd från ControlBuilder)
ItemType

Hämtar den typ som angetts för bindningscontainern.

(Ärvd från ControlBuilder)
Localize

Hämtar ett booleskt värde som anger om kontrollen som skapas av det här ControlBuilder objektet är lokaliserad.

(Ärvd från ControlBuilder)
NamingContainerType

Hämtar typen av namngivningscontainer för den kontroll som den här byggaren skapar.

(Ärvd från ControlBuilder)
PageVirtualPath

Hämtar den virtuella sökvägen till en sida som ska skapas av den här ControlBuilder instansen.

(Ärvd från ControlBuilder)
Parser

Hämtar ansvaret TemplateParser för att parsa kontrollen.

(Ärvd från ControlBuilder)
ServiceProvider

Hämtar tjänstobjektet för det här ControlBuilder objektet.

(Ärvd från ControlBuilder)
SubBuilders

Hämtar en lista över underordnade ControlBuilder objekt för det här ControlBuilder objektet.

(Ärvd från ControlBuilder)
TagName

Hämtar taggnamnet för kontrollen som ska skapas.

(Ärvd från ControlBuilder)
TemplatePropertyEntries

Hämtar en samling mallegenskapsposter.

(Ärvd från ControlBuilder)
ThemeResolutionService

Hämtar ett IThemeResolutionService objekt som används i designtid för att hantera kontrollteman och skinn.

(Ärvd från ControlBuilder)

Metoder

Name Description
AllowWhitespaceLiterals()

Avgör om blankstegsliteralerna i en HtmlSelect kontroll ska bearbetas eller ignoreras.

AppendLiteralString(String)

Lägger till det angivna literalinnehållet i en kontroll. Den här metoden anropas av det ASP.NET sidramverket.

(Ärvd från ControlBuilder)
AppendSubBuilder(ControlBuilder)

Lägger till byggare i ControlBuilder objektet för alla underordnade kontroller som tillhör containerkontrollen.

(Ärvd från ControlBuilder)
BuildObject()

Skapar en designtidsinstans av kontrollen som refereras till av det här ControlBuilder objektet.

(Ärvd från ControlBuilder)
CloseControl()

Anropas av parsern för att informera byggaren om att parsningen av kontrollens inledande och avslutande taggar är klar.

(Ärvd från ControlBuilder)
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetChildControlType(String, IDictionary)

Hämtar Type för kontrollens HtmlSelect underordnade kontroller.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetObjectPersistData()

Skapar objektet ObjectPersistData för det här ControlBuilder objektet.

(Ärvd från ControlBuilder)
GetResourceKey()

Hämtar resursnyckeln för det här ControlBuilder objektet.

(Ärvd från ControlBuilder)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
HasBody()

Avgör om en kontroll har både en inledande och avslutande tagg. Den här metoden anropas av det ASP.NET sidramverket.

(Ärvd från ControlBuilder)
HtmlDecodeLiterals()

Avgör om literalsträngen för en HTML-kontroll måste vara HTML-avkodad. Den här metoden anropas av det ASP.NET sidramverket.

(Ärvd från ControlBuilder)
Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary)

Initierar ControlBuilder för användning när den har instansierats. Den här metoden anropas av det ASP.NET sidramverket.

(Ärvd från ControlBuilder)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
NeedsTagInnerText()

Avgör om kontrollverktyget behöver hämta sin inre text. I så fall SetTagInnerText(String) måste metoden anropas. Den här metoden anropas av det ASP.NET sidramverket.

(Ärvd från ControlBuilder)
OnAppendToParentBuilder(ControlBuilder)

Meddelar att den läggs till i en överordnad ControlBuilder kontrollbyggare.

(Ärvd från ControlBuilder)
ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod)

Gör det möjligt för anpassade kontrollbyggare att komma åt den genererade koddokumentobjektmodellen (CodeDom) och infoga och ändra kod under parsnings- och byggkontroller.

(Ärvd från ControlBuilder)
SetResourceKey(String)

Anger resursnyckeln för det här ControlBuilder objektet.

(Ärvd från ControlBuilder)
SetServiceProvider(IServiceProvider)

Anger tjänstobjektet för det här ControlBuilder objektet.

(Ärvd från ControlBuilder)
SetTagInnerText(String)

ControlBuilder Innehåller den inre texten i kontrolltaggen.

(Ärvd från ControlBuilder)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för

Se även