先写一个类库文件(对原文件做了修改),如下:
/// <summary>
    /// 冯东耀修改于2008-11-21
    /// </summary>
    public class NewDropDownList : DropDownList
    {
        //构造函数
        public NewDropDownList(DataTable dt)
        {
            ListItem item = new ListItem();
            foreach (DataRow row in dt.Rows)
            {
                item.Value = row[0].ToString();
                item.Text = row[1].ToString();
                if (row[3].ToString() == "0")
                    item.Attributes.Add("optgroup", item.Text);
                Items.Add(item);
            }
        }

//重写方法
        protected override void RenderContents(HtmlTextWriter writer)
        {
            string optgroup;
            ArrayList optOptionGroups = new ArrayList();
            foreach (ListItem item in this.Items)
            {
                if (item.Attributes["optgroup"] == null)
                {
                    RenderListItem(item, writer);
                }
                else
                {
                    optgroup = item.Attributes["optgroup"];
                    if (optOptionGroups.Contains(optgroup))
                    {
                        RenderListItem(item, writer);
                    }
                    else
                    {
                        if (optOptionGroups.Count > 0)
                        {
                            optgroupEndTag(writer);
                        }
                        optgroupBeginTag(optgroup, writer);
                        optOptionGroups.Add(optgroup);
                    }
                }
            }
            if (optOptionGroups.Count > 0)
            {
                optgroupEndTag(writer);
            }
        }

//option 简单添加style
        private void RenderListItem(ListItem item, HtmlTextWriter writer)
        {
            writer.WriteBeginTag("option");
            writer.WriteAttribute("value", item.Value, true);
            //writer.WriteAttribute("style", "color:#7395c1", true);//此处可以更改选项的字体颜色
            if (item.Selected)
            {
                writer.WriteAttribute("selected", "selected", false);
            }
            foreach (string key in item.Attributes.Keys)
            {
                writer.WriteAttribute(key, item.Attributes[key]);
            }
            writer.Write(HtmlTextWriter.TagRightChar);
            HttpUtility.HtmlEncode(item.Text, writer);
            writer.WriteEndTag("option");
            writer.WriteLine();
        }

//option 添加optgroup
        private void optgroupBeginTag(string name, HtmlTextWriter writer)
        {
            writer.WriteBeginTag("optgroup");
            writer.WriteAttribute("label", name);
            writer.Write(HtmlTextWriter.TagRightChar);
            writer.WriteLine();
        }
        private void optgroupEndTag(HtmlTextWriter writer)
        {
            writer.WriteEndTag("optgroup");
            writer.WriteLine();
        }

}
将它保存为一个类库文件。然后新建一个aspx页面,前台添加一个Panel,后台代码要添加上面类库文件的命名空间。
aspx代码
    <form id="form1" runat="server">
        <asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px">
        </asp:Panel>
    </form>
aspx.cs代码
    protected void Page_Load(object sender, EventArgs e)
    {
        DataTable dt = RK.Dal.ArticleMgr.GetFSCategory();
//首先得到一个dt,数据要求,
//第一列为DropDownList选项的值,
//第二列为DropDownList选项的显示文本,
//第三列是父级id,如果为0则表示是顶级;
        NewDropDownList ddl = new NewDropDownList(dt);
        ddl.ID = "DropClassId";
        this.Panel1.Controls.Add(ddl);
}

为DropDownList 添加optgroup分组以及为ListItem 加式样相关推荐

  1. R语言ggplot2可视化:可视化堆叠的直方图、添加每个分组的每个bin的计数标签、在堆叠直方图的bin中的每个分组部分添加数值标签

    R语言ggplot2可视化:可视化堆叠的直方图.添加每个分组的每个bin的计数标签.在堆叠直方图的bin中的每个分组部分添加数值标签 目录

  2. openfire--好友管理实现好友添加及分组管理

    openfire中实现好友添加及分组管理. 主要基于两张table实现:ofroster,ofrostergroups. ofroster:用于记录好友关系(一对好友关系用两条记录来实现) ofros ...

  3. asp.net 2.0中新增的AppendDataBoundItems .dropdownlist 添加第一项

    在asp.net 2.0中,新增了一个AppendDataBoundItems属性,十分方便,使可以在执行数据绑定之前将项添加到 listcontrol 对象中.执行数据绑定之后,项集合中包含数据源中 ...

  4. 用Javascript为DropDownList添加一个Item至定义索引位置

    用Javascript为DropDownList控件下拉式选择添加一个Item至定义索引位置. 准备数据,创建一个对象,将是存储DropDownList控件每个Item数据. View Code Im ...

  5. HTML全面深入学习-select的optgroup分组

    看: <select> <optgroup label="碱性金属"> <option>锂 (Li)</option> <op ...

  6. ztree 更新配置后重新渲染树_【问】zTree异步加载时添加父节点怎样避免再次加载整树...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 具体情况是 每当我执行add方法添加父节点的时候,都回去server端重新获取一次树节点信息,并加载在新增加的节点下. 页面代码如下 var settin ...

  7. php背景图添加字,怎样给视频后面加背景图 视频加背景图片并添加一行广告文字...

    有不少广告小视频中,视频画面是一张海报背景图片,图片上显示一个小视频播放,并且在画面上还有显示一行广告字幕.这样的宣传视频制作其实蛮简单的,怎样给视频后面加背景图片的方法倒是挺多,要给视频加背景图片的 ...

  8. 动态加载html 添加样式表,使页面动态加载不同CSS样式表,从而实现不同风格模板的方法...

    我们在制作网页时,有时会制作多种风格模板,而想把这些模板都用起来,而又不知道方法,通过以下两种方法,你就可以实现相同网站不同CSS模板的方法. ASP.Net中利用CSS实现多界面两种方法. 方法一: ...

  9. linux视频对话框,抖音对话框视频怎么做?如何在视频画面上添加对话气泡框?视频加对话气泡的方法...

    小编家里有个快要两周岁的小侄女,平日里总是喜欢做一些人小鬼大的事情,这不,前段时间她妈妈发了一个小视频,她拉着一个跟她差不多大的行李箱一脸严肃地说她要去上班~那么小一个小不点,居然很认真地对她妈妈说要 ...

最新文章

  1. 【python图像处理】python绘制3D图形
  2. 技术干货 | Native 页面下如何实现导航栏的定制化开发?
  3. SAP WebIDE UI5应用的几种启动方式
  4. 青茶什么时候拆_为什么日本绿茶那么绿?比中国的高级绿茶还要绿
  5. React 的诞生过程
  6. 13. Memcache 安装,启动,基本命令,URL
  7. 诺基亚再做手机,没有机会
  8. carmaker的弱智算法
  9. 这样 PDF 的技术简历,HR根本不想看,谈何到面试官手中?
  10. 相关系数(Correlation)
  11. 如何解决excel文档打不开呢?
  12. 专访美团外卖曹振团:天下武功唯快不破
  13. 导向滤波原理(Guided Filter)
  14. 怀孕计算机在线,【孕期天数计算器在线计算_孕期天数计算器在线计算专题】- 天鹅到家...
  15. ardupilot软件仿真及调试(vscode版)
  16. QT软件开发之入门基础-搭建开发环境
  17. matlab复数方程的根,matlab解超越方程的复数根
  18. maya2018拓扑功能实现
  19. 【新示例】协作云路上的先驱or先烈,思科、TCL合资的科天云这样思考
  20. 全国IT公司红黑榜排名(更新时间11月8日)

热门文章

  1. liunx上安装nacos
  2. 第一次上传代码到gitee
  3. Spring Security原理之springSecurityFilterChain
  4. Python * ** 打包解包详解
  5. python 靶心_手把手教你使用Python实战反欺诈模型|原理+代码
  6. 运维企业专题(10)RHCS集群工具——FENCE搭建、高可用服务配置详解
  7. 霹雳小组4显示不了服务器,霹雳小组4-指令码
  8. electron 托盘图标闪烁_从零到一,用 Electron 开发桌面效率工具
  9. java矩阵传递给r_从JAVA调用R得到卡方统计和p值
  10. 南大计算机学硕复试,2019南大CS考研复试笔试回忆