Aracılığıyla paylaş


HtmlSelectBuilder Sınıf

Tanım

Bir denetim oluşturmak HtmlSelect için ayrıştırıcıyla etkileşim kurar.

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

Örnekler

Aşağıdaki kod örneği, bir özel HtmlSelectBuilder denetimin iki tür <option> alt öğesini tanımlayan ve ardından her türü farklı şekilde işleyen bir özel HtmlSelect denetimin nasıl oluşturulacağını gösterir.

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

Açıklamalar

Denetim, HtmlSelectBuilder bir HtmlSelect denetim oluşturmak için sayfa ayrıştırıcısıyla etkileşim kurar. Denetimi ayrıştırmayı HtmlSelectBuilder HtmlSelect özelleştirmek için denetimi kullanın.

AllowWhitespaceLiterals özelliği olarak ayarlanırfalse, böylece boşluk her zaman yoksayılır. Denetimin GetChildControlType alt denetimlerinin HtmlSelect türünü belirlemek için yöntemini kullanın.

Devralanlara Notlar

Bir denetim için özel denetim oluşturucusu oluşturmak için HtmlSelect bu sınıftan devralmanız gerekir.

Oluşturucular

HtmlSelectBuilder()

HtmlSelectBuilder sınıfının yeni bir örneğini başlatır.

Özellikler

BindingContainerBuilder

Bu oluşturucunun oluşturduğu denetim için bağlama kapsayıcısına karşılık gelen denetim oluşturucusunu alır.

(Devralındığı yer: ControlBuilder)
BindingContainerType

Bu oluşturucunun oluşturduğu denetim için bağlama kapsayıcısının türünü alır.

(Devralındığı yer: ControlBuilder)
ComplexPropertyEntries

Karmaşık özellik girdileri koleksiyonunu alır.

(Devralındığı yer: ControlBuilder)
ControlType

Type Oluşturulacak denetimin öğesini alır.

(Devralındığı yer: ControlBuilder)
CurrentFilterResolutionService

Tasarımcıda denetimleri ayrıştırırken ve kalıcı hale getirmek için cihaz filtresiyle ilgili hizmetleri yönetmek için kullanılan bir IFilterResolutionService nesneyi alır.

(Devralındığı yer: ControlBuilder)
DeclareType

Denetimi bildirmek için kod oluşturma tarafından kullanılacak türü alır.

(Devralındığı yer: ControlBuilder)
FChildrenAsProperties

Denetimin ile olarak ayarlanıp ayarlanmadığını truebelirleyen bir ParseChildrenAttribute ChildrenAsProperties değer alır.

(Devralındığı yer: ControlBuilder)
FIsNonParserAccessor

Denetimin arabirimi uygulayıp uygulamadığını IParserAccessor belirleyen bir değer alır.

(Devralındığı yer: ControlBuilder)
HasAspCode

Denetimin kod blokları içerip içermediğini belirten bir değer alır.

(Devralındığı yer: ControlBuilder)
ID

Oluşturulacak denetimin tanımlayıcı özelliğini alır veya ayarlar.

(Devralındığı yer: ControlBuilder)
InDesigner

öğesinin ControlBuilder tasarımcıda çalışıp çalışmadığını döndürür.

(Devralındığı yer: ControlBuilder)
InPageTheme

Bu ControlBuilder nesnenin sayfa temaları oluşturmak için kullanılıp kullanılmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ControlBuilder)
ItemType

Bağlama kapsayıcısı üzerinde ayarlanan türü alır.

(Devralındığı yer: ControlBuilder)
Localize

Bu ControlBuilder nesne tarafından oluşturulan denetimin yerelleştirilip oluşturulmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ControlBuilder)
NamingContainerType

Bu oluşturucunun oluşturduğu denetimin adlandırma kapsayıcısının türünü alır.

(Devralındığı yer: ControlBuilder)
PageVirtualPath

Bu ControlBuilder örnek tarafından oluşturulacak sayfanın sanal yolunu alır.

(Devralındığı yer: ControlBuilder)
Parser

TemplateParser Denetimi ayrıştırma sorumluluğunu alır.

(Devralındığı yer: ControlBuilder)
ServiceProvider

Bu ControlBuilder nesne için hizmet nesnesini alır.

(Devralındığı yer: ControlBuilder)
SubBuilders

Bu ControlBuilder nesne için alt ControlBuilder nesnelerin listesini alır.

(Devralındığı yer: ControlBuilder)
TagName

Oluşturulacak denetimin etiket adını alır.

(Devralındığı yer: ControlBuilder)
TemplatePropertyEntries

Şablon özelliği girdileri koleksiyonunu alır.

(Devralındığı yer: ControlBuilder)
ThemeResolutionService

Denetim temalarını ve dış görünümlerini yönetmek için tasarım zamanında kullanılan bir IThemeResolutionService nesneyi alır.

(Devralındığı yer: ControlBuilder)

Yöntemler

AllowWhitespaceLiterals()

Bir HtmlSelect denetimdeki boşluk değişmez değerlerinin işlenip işlenmeyeceğini veya yoksayılıp yoksayılmayacağını belirler.

AppendLiteralString(String)

Belirtilen değişmez değeri bir denetime ekler. Bu yöntem, ASP.NET sayfa çerçevesi tarafından çağrılır.

(Devralındığı yer: ControlBuilder)
AppendSubBuilder(ControlBuilder)

Kapsayıcı denetimine ControlBuilder ait tüm alt denetimler için nesneye oluşturucular ekler.

(Devralındığı yer: ControlBuilder)
BuildObject()

Bu ControlBuilder nesne tarafından başvuruda bulunılan denetimin tasarım zamanı örneğini oluşturur.

(Devralındığı yer: ControlBuilder)
CloseControl()

Oluşturucuyu denetimin açma ve kapatma etiketlerinin ayrıştırma işleminin tamamlandığını bildirmek için ayrıştırıcı tarafından çağrılır.

(Devralındığı yer: ControlBuilder)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetChildControlType(String, IDictionary)

Denetimin HtmlSelect alt denetimleri için öğesini Type alır.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetObjectPersistData()

Bu ControlBuilder nesne için ObjectPersistData nesnesini oluşturur.

(Devralındığı yer: ControlBuilder)
GetResourceKey()

Bu ControlBuilder nesnenin kaynak anahtarını alır.

(Devralındığı yer: ControlBuilder)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
HasBody()

Denetimin hem açma hem de kapatma etiketi olup olmadığını belirler. Bu yöntem, ASP.NET sayfa çerçevesi tarafından çağrılır.

(Devralındığı yer: ControlBuilder)
HtmlDecodeLiterals()

Html denetiminin değişmez dizesinin HTML kodunun çözülmesi gerekip gerekmediğini belirler. Bu yöntem, ASP.NET sayfa çerçevesi tarafından çağrılır.

(Devralındığı yer: ControlBuilder)
Init(TemplateParser, ControlBuilder, Type, String, String, IDictionary)

örneği başlatıldıktan sonra kullanılacak öğesini ControlBuilder başlatır. Bu yöntem, ASP.NET sayfa çerçevesi tarafından çağrılır.

(Devralındığı yer: ControlBuilder)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
NeedsTagInnerText()

Denetim oluşturucusunun iç metnini alması gerekip gerekmediğini belirler. Bu durumda yöntemi SetTagInnerText(String) çağrılmalıdır. Bu yöntem, ASP.NET sayfa çerçevesi tarafından çağrılır.

(Devralındığı yer: ControlBuilder)
OnAppendToParentBuilder(ControlBuilder)

ControlBuilder Üst denetim oluşturucusunun eklendiğini bildirir.

(Devralındığı yer: ControlBuilder)
ProcessGeneratedCode(CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod)

Özel denetim oluşturucularının oluşturulan Kod Belgesi Nesne Modeli'ne (CodeDom) erişmesini ve denetimleri ayrıştırma ve derleme işlemi sırasında kod eklemesini ve değiştirmesini sağlar.

(Devralındığı yer: ControlBuilder)
SetResourceKey(String)

Bu ControlBuilder nesnenin kaynak anahtarını ayarlar.

(Devralındığı yer: ControlBuilder)
SetServiceProvider(IServiceProvider)

Bu ControlBuilder nesne için hizmet nesnesini ayarlar.

(Devralındığı yer: ControlBuilder)
SetTagInnerText(String)

ControlBuilder denetim etiketinin iç metnini sağlar.

(Devralındığı yer: ControlBuilder)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.