扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)

时间:2022-04-05 15:10:13
DropDownList(ListBox)控件既强大又好用。为了让它更强大、更好用,我们来写一个继承自 DropDownList(ListBox)的控件。
[源码下载]


扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)


作者: webabcd


介绍
扩展DropDownList控件和ListBox控件
通过 DropDownList控件和ListBox控件的.Items.Add(ListItem item)方法,来为其添加optgroup标签,从而实现分组功能


使用方法
1、设置属性:
OptionGroupValue - 用于添加DropDownList(ListBox)控件的分组项的ListItem的Value值(默认为optgroup
2、使用DropDownList(ListBox)控件的.Items.Add(ListItem item)方法:
OptionGroupValue为默认值时:SmartDropDownList.Items.Add(new ListItem("中国", "optgroup"));


图示
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)


关键代码(以DropDownList为例)
SmartDropDownList.cs
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)using  System;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Collections.Generic;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Text;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Web.UI.WebControls;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Web.UI;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)[assembly: System.Web.UI.WebResource(
" YYControls.SmartDropDownList.Resources.Icon.bmp " " image/bmp " )]
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
namespace  YYControls
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
/// <summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
/// SmartDropDownList类,继承自DropDownList
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
/// </summary>

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    [ToolboxData(@"<{0}:SmartDropDownList runat='server'></{0}:SmartDropDownList>")]
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    [System.Drawing.ToolboxBitmap(
typeof(YYControls.Resources.Icon), "SmartDropDownList.bmp")]
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
public partial class SmartDropDownList : DropDownList
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// 构造函数
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// </summary>

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        public SmartDropDownList()
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// 将控件的内容呈现到指定的编写器中
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// </summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <param name="writer">writer</param>

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        protected override void RenderContents(HtmlTextWriter writer) 
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
// 呈现Option或OptionGroup
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
            OptionGroupRenderContents(writer);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)}

Property.cs
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)using  System;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Collections.Generic;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Text;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.ComponentModel;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Web.UI;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
namespace  YYControls
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
/// <summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
/// SmartDropDownList类的属性部分
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
/// </summary>

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    public partial class SmartDropDownList
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// 用于添加SmartDropDownList的分组项的ListItem的Value值
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// </summary>

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        [
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        Browsable(
true),
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        Description(
"用于添加DropDownList的分组项的ListItem的Value值"),
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        Category(
"扩展")
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        ]
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
public virtual string OptionGroupValue
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
get
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                
string s = (string)ViewState["OptionGroupValue"];
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                
return (s == null? "optgroup" : s;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
set
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                ViewState[
"OptionGroupValue"= value;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)}

OptionGroup.cs
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)using  System;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Collections.Generic;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Text;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Data;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Web.UI.WebControls;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Web.UI;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
using  System.Web;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
namespace  YYControls
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
/// <summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
/// SmartDropDownList类的属性部分
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
/// </summary>

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    public partial class SmartDropDownList
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// 呈现Option或OptionGroup
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// </summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <param name="writer">writer</param>

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        private void OptionGroupRenderContents(HtmlTextWriter writer)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
// 是否需要呈现OptionGroup的EndTag
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
            bool writerEndTag = false;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
foreach (ListItem li in this.Items)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                
// 如果没有optgroup属性则呈现Option
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
                if (li.Value != this.OptionGroupValue)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                    
// 呈现Option
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
                    RenderListItem(li, writer);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                
// 如果有optgroup属性则呈现OptionGroup
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
                else
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                    
if (writerEndTag)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                        
// 呈现OptionGroup的EndTag
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
                        OptionGroupEndTag(writer);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                    
else
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                        writerEndTag 
= true;
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                    
// 呈现OptionGroup的BeginTag
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
                    OptionGroupBeginTag(li, writer);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
if (writerEndTag)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                
// 呈现OptionGroup的EndTag
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
                OptionGroupEndTag(writer);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// 呈现OptionGroup的BeginTag
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// </summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <param name="li">OptionGroup数据项</param>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <param name="writer">writer</param>

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        private void OptionGroupBeginTag(ListItem li, HtmlTextWriter writer)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            writer.WriteBeginTag(
"optgroup");
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
// 写入OptionGroup的label
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
            writer.WriteAttribute("label", li.Text);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
foreach (string key in li.Attributes.Keys)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                
// 写入OptionGroup的其它属性
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
                writer.WriteAttribute(key, li.Attributes[key]);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            writer.Write(HtmlTextWriter.TagRightChar);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            writer.WriteLine();
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// 呈现OptionGroup的EndTag
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// </summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <param name="writer">writer</param>

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        private void OptionGroupEndTag(HtmlTextWriter writer)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            writer.WriteEndTag(
"optgroup");
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            writer.WriteLine();
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// 呈现Option
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// </summary>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <param name="li">Option数据项</param>
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
/// <param name="writer">writer</param>

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        private void RenderListItem(ListItem li, HtmlTextWriter writer)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            writer.WriteBeginTag(
"option");
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
// 写入Option的Value
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
            writer.WriteAttribute("value", li.Value, true);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
if (li.Selected)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                
// 如果该Option被选中则写入selected
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
                writer.WriteAttribute("selected""selected"false);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
foreach (string key in li.Attributes.Keys)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
{
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)                
// 写入Option的其它属性
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
                writer.WriteAttribute(key, li.Attributes[key]);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            writer.Write(HtmlTextWriter.TagRightChar);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            
// 写入Option的Text
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
            HttpUtility.HtmlEncode(li.Text, writer);
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            writer.WriteEndTag(
"option");
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)            writer.WriteLine();
扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)        }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)    }

扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)}


OK
[源码下载]