HtmlSelect.AddParsedSubObject Method (Object)

 

Adds a parsed child control to the HtmlSelect control.

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

protected override void AddParsedSubObject(
	object obj
)

Parameters

obj
Type: System.Object

The parsed child control to add.

Exception Condition
HttpException

The child control specified by the obj parameter must be of the type ListItem.

The AddParsedSubObject method is used by ASP.NET to add parsed child controls to the HtmlSelect control.

The following code example demonstrates how to override the AddParsedSubObject method in a custom server control so that it always checks that an instance of the ListItem class is added to the HtmlSelect selected items collection.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS" %>
<%@ Page Language="C#" AutoEventWireup="True" %>
<!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>
        <title>Custom HtmlSelect - AddParsedSubObject - 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 - AddParsedSubObject - C# Example</h3>

            <p>
      <aspSample:CustomHtmlSelectAddParsedSubObject 
        id="HtmlSelect1" 
        name="HtmlSelect1"
        runat="server">
        <option value="Option1">Option1</option>
        <option value="Option2">Option2</option>
        <option value="Option3">Option3</option>
      </aspSample:CustomHtmlSelectAddParsedSubObject>
      </p>

      <p>
      <input 
        id="HtmlInputButton1" 
        runat="server" 
        type="button" 
        onserverclick="HtmlInputButton1_ServerClick"
        value="Select" 
        name="HtmlInputButton1" />&nbsp;&nbsp;
      </p>

      <br />
      <div id="Div1" runat="server" 
        style="DISPLAY: inline; WIDTH: 256px; HEIGHT: 15px" />

        </form>
    </body>
</html>
using System.Web;
using System.Security.Permissions;

namespace Samples.AspNet.CS.Controls
{
    [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
    public sealed class CustomHtmlSelectAddParsedSubObject : System.Web.UI.HtmlControls.HtmlSelect
    {
        protected override void AddParsedSubObject(object obj)
        {
            // If the object is a ListItem, then add the ListItem to the Items collection.
            if (obj is System.Web.UI.WebControls.ListItem)
            {
            Items.Add((System.Web.UI.WebControls.ListItem)obj);
            }
            else
            {
            throw new System.Web.HttpException("You cannot have a child control of type " + obj.GetType().Name.ToString());
            }
        }
    }
}

.NET Framework
Available since 1.1
Return to top
Show: