Freigeben über


HtmlSelect.RenderChildren-Methode

Rendert die untergeordneten Steuerelemente des HtmlSelect-Steuerelements in das angegebene HtmlTextWriter-Objekt.

Namespace: System.Web.UI.HtmlControls
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Protected Friend Overrides Sub RenderChildren ( _
    writer As HtmlTextWriter _
)
'Usage
Dim writer As HtmlTextWriter

Me.RenderChildren(writer)
protected internal override void RenderChildren (
    HtmlTextWriter writer
)
protected public:
virtual void RenderChildren (
    HtmlTextWriter^ writer
) override
protected void RenderChildren (
    HtmlTextWriter writer
)
protected internal override function RenderChildren (
    writer : HtmlTextWriter
)

Parameter

Ausnahmen

Ausnahmetyp Bedingung

HttpException

Es wurden mehrere Elemente ausgewählt, aber die Multiple-Eigenschaft wurde auf false festgelegt.

Hinweise

Die RenderChildren-Methode überschreibt die RenderChildren-Methode der Basisklasse ohne die Basismethode aufzurufen. Jedes <option>-Element zwischen dem öffnenden und dem schließenden <select>-Tag wird mit einem value-Attribut, einem selected-Attribut, sofern das Element ausgewählt wurde, und dem zugeordneten Text gerendert.

Wenn mehrere Elemente ausgewählt wurden, aber die Multiple-Eigenschaft auf false festgelegt ist, wird eine HttpException-Ausnahme ausgelöst.

Beispiel

Im folgenden Codebeispiel wird das Überschreiben der RenderChildren-Methode veranschaulicht, sodass diese immer den Standardoptionstext in einem benutzerdefinierten HtmlSelect-Serversteuerelement anzeigt.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB" %>
<%@ Page Language="VB" AutoEventWireup="True" %>
<HTML>
    <HEAD>
        <title>Custom HtmlSelect - RenderChildren - VB.NET Example</title>
        <script runat="server">
      Sub HtmlInputButton1_ServerClick(sender As Object, e As EventArgs)
        If HtmlSelect1.SelectedIndex >= 0 Then
            If HtmlSelect1.Multiple = True Then
              Div1.InnerHtml = "You selected:"
              Dim i As Integer
              For i = 0 To HtmlSelect1.Items.Count - 1
                  If HtmlSelect1.Items(i).Selected = True Then
                    Div1.InnerHtml += "<br> &nbsp;&nbsp; " & HtmlSelect1.Items(i).Value
                  End If
              Next i
            Else
              Div1.InnerHtml = "You selected " & HtmlSelect1.Value
            End If
        Else
            Div1.InnerHtml = "You did not select an item."
        End If
      End Sub
        </script>
    </HEAD>
    <body>
        <form id="Form1" method="post" runat="server">
            <h3>Custom HtmlSelect - RenderChildren - VB.NET Example</h3>
            
            <p>
      <aspSample:CustomHtmlSelectRenderChildren 
        id="HtmlSelect1"  multiple
        name="HtmlSelect1"
        runat="server">
        <OPTION value="Option1">Option1</OPTION>
        <OPTION value="Option2">Option2</OPTION>
        <OPTION value="Option3">Option3</OPTION>
      </aspSample:CustomHtmlSelectRenderChildren>
      </p>
      
      <p>
      <INPUT 
        id="HtmlInputButton1" 
        runat="server" 
        type="button" 
        onserverclick="HtmlInputButton1_ServerClick"
        value="Select" 
        name="HtmlInputButton1">&nbsp;&nbsp;
      </p>
      
      <p>
      <DIV id="Div1" runat="server" 
        style="DISPLAY: inline; WIDTH: 256px; HEIGHT: 15px" 
        ms_positioning="FlowLayout" />
      </p>
       
        </form>
    </body>
</HTML>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS" %>
<%@ Page Language="C#" AutoEventWireup="True" %>
<HTML>
    <HEAD>
        <title>Custom HtmlSelect - RenderChildren - C# Example</title>
        <script runat="server">
      void HtmlInputButton1_ServerClick(Object sender, EventArgs e) 
      {
        if (HtmlSelect1.SelectedIndex >= 0)
        {
          if (HtmlSelect1.Multiple == true)
          {
            Div1.InnerHtml = "You selected:";
            for (int i=0; i<=HtmlSelect1.Items.Count - 1; i++)
            {
              if (HtmlSelect1.Items[i].Selected == true)
              {
                Div1.InnerHtml += "<br> &nbsp;&nbsp; " + HtmlSelect1.Items[i].Value; 
              }     
            }
          }
          else
          {
            Div1.InnerHtml = "You selected " + HtmlSelect1.Value;
          }
        }
        else
        {
          Div1.InnerHtml = "You did not select an item.";
        }
      }
        </script>
    </HEAD>
    <body>
        <form id="Form1" method="post" runat="server">
            <h3>Custom HtmlSelect - RenderChildren - C# Example</h3>
            
            <p>
      <aspSample:CustomHtmlSelectRenderChildren 
        id="HtmlSelect1"  multiple
        name="HtmlSelect1"
        runat="server">
        <OPTION value="Option1">Option1</OPTION>
        <OPTION value="Option2">Option2</OPTION>
        <OPTION value="Option3">Option3</OPTION>
      </aspSample:CustomHtmlSelectRenderChildren>
      </p>
      
      <p>
      <INPUT 
        id="HtmlInputButton1" 
        runat="server" 
        type="button" 
        onserverclick="HtmlInputButton1_ServerClick"
        value="Select" 
        name="HtmlInputButton1">&nbsp;&nbsp;
      </p>
      
      <p>
      <DIV id="Div1" runat="server" 
        style="DISPLAY: inline; WIDTH: 256px; HEIGHT: 15px" 
        ms_positioning="FlowLayout" />
      </p>
       
        </form>
    </body>
</HTML>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.JSL.Controls" Assembly="Samples.AspNet.JSL" %>
<%@ Page Language="VJ#" AutoEventWireup="True" %>
<HTML>
    <HEAD>
        <title>Custom HtmlSelect - RenderChildren - VJ# Example</title>
        <script runat="server">
    void HtmlInputButton1_ServerClick(Object sender, EventArgs e) 
    {
        if (HtmlSelect1.get_SelectedIndex() >= 0) {
            if (HtmlSelect1.get_Multiple() == true) {
                Div1.set_InnerHtml("You selected:");
                for (int i=0; i<=HtmlSelect1.get_Items().get_Count() - 1; i++) {
                    if (HtmlSelect1.get_Items().get_Item(i).
                        get_Selected() == true) {
                        Div1.set_InnerHtml(Div1.get_InnerHtml() + "<br> &nbsp;&nbsp; " + HtmlSelect1.get_Items().get_Item(i).get_Value()); 
                    }     
                }
            }
            else {
                Div1.set_InnerHtml("You selected " + HtmlSelect1.get_Value());
            }
        }
        else {
            Div1.set_InnerHtml("You did not select an item.");
        }
    } //HtmlInputButton1_ServerClick
        </script>
    </HEAD>
    <body>
        <form id="Form1" method="post" runat="server">
            <h3>Custom HtmlSelect - RenderChildren - VJ# Example</h3>
            
            <p>
      <aspSample:CustomHtmlSelectRenderChildren 
        id="HtmlSelect1"  multiple
        name="HtmlSelect1"
        runat="server">
        <OPTION value="Option1">Option1</OPTION>
        <OPTION value="Option2">Option2</OPTION>
        <OPTION value="Option3">Option3</OPTION>
      </aspSample:CustomHtmlSelectRenderChildren>
      </p>
      
      <p>
      <INPUT 
        id="HtmlInputButton1" 
        runat="server" 
        type="button" 
        onserverclick="HtmlInputButton1_ServerClick"
        value="Select" 
        name="HtmlInputButton1">&nbsp;&nbsp;
      </p>
      
      <p>
      <DIV id="Div1" runat="server" 
        style="DISPLAY: inline; WIDTH: 256px; HEIGHT: 15px" 
        ms_positioning="FlowLayout" />
      </p>
       
        </form>
    </body>
</HTML>
<AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
Public NotInheritable Class CustomHtmlSelectRenderChildren
    Inherits System.Web.UI.HtmlControls.HtmlSelect

    Protected Overrides Sub RenderChildren(ByVal writer As System.Web.UI.HtmlTextWriter)

        ' Create a default OPTION.
        Dim listItem As New System.Web.UI.WebControls.ListItem("<Select an option> ", "")
        Me.Items.Insert(0, listItem)

        ' Call base's RenderChildren method.
        MyBase.RenderChildren(writer)
    End Sub
End Class
using System.Web;
using System.Security.Permissions;

namespace Samples.AspNet.CS.Controls
{
    [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
    public sealed class CustomHtmlSelectRenderChildren : System.Web.UI.HtmlControls.HtmlSelect
    {
        protected override void RenderChildren(System.Web.UI.HtmlTextWriter writer)
        {
            // Create a default OPTION.
            System.Web.UI.WebControls.ListItem listItem = new System.Web.UI.WebControls.ListItem("<Select an option> ","");
            this.Items.Insert(0, listItem);
            
            // Call base's RenderChildren method.
            base.RenderChildren(writer);
        }
    }
}
package Samples.AspNet.JSL.Controls;

public class CustomHtmlSelectRenderChildren
    extends System.Web.UI.HtmlControls.HtmlSelect
{
    protected void RenderChildren(System.Web.UI.HtmlTextWriter writer)
    {
        // Create a default OPTION.
        System.Web.UI.WebControls.ListItem listItem = 
            new System.Web.UI.WebControls.ListItem("<Select an option> ", "");
        this.get_Items().Insert(0, listItem);
        // Call base's RenderChildren method.
        super.RenderChildren(writer);
    } //RenderChildren
} //CustomHtmlSelectRenderChildren

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

HtmlSelect-Klasse
HtmlSelect-Member
System.Web.UI.HtmlControls-Namespace
ListItem

Weitere Ressourcen

HTML-Serversteuerelemente