只是想实现如下代码的功能.
<title>可以分类显示的Select下拉框</title>
<select>
    <optgroup label="WEB编程">
        <option>ASP</option>
        <option>PHP</option>
        <option>Ajax</option>
    </optgroup>
    <optgroup label="WinForm编程">
        <option>VB</option>
        <option>VC</option>
        <option>C#</option>
        <option>Delphi</option>
    </optgroup>
</select>    
但是后台.cs文件不知道该怎么加载optgroup这个标签,后台数据库取出的datatable值就是
id      name     parentid 样子的数据.
public static void BindDropDownList2(System.Web.UI.HtmlControls.HtmlSelect select, System.Data.DataTable dt, string firstfather_id, string childid, string father_id, string name)
    {
            System.Data.DataRow[] drs = dt.Select(father_id + "=" + firstfather_id);
            for (int i = 0; i < drs.Length; i++)
            {
                select.Attributes.Add("<optgroup>", drs[i][name].ToString());
            }
    }
前台如下:
<select id="select" style="width:150px;" runat="server" </select>哪位兄弟对这个研究过的,麻烦给点思路,后台代码我用
select.Items.Add(******);试过不行,出来的结果optgroup是在选项里面的,没有分组,用上面代码的attributes更不对的,求解啊!!!!!!

解决方案 »

  1.   

    一般这种情况我都用 StringBuilder
    因为输出客户端的 这个东西还是比较方便
    或者楼主可以 用public string op 来做 前台<%=op%>获取就OK了
    方式很多的 没必要给他做成这个模式
    实在不行用 服务端的 下拉列表被何必执着呢?
      

  2.   


        public static void BindDropDownList2(System.Web.UI.HtmlControls.HtmlSelect select, System.Data.DataTable dt, string firstfather_id, string childid, string father_id, string name)
        {
                System.Data.DataRow[] drs = dt.Select(father_id + "=" + firstfather_id);
                for (int i = 0; i < drs.Length; i++)
                {
                    System.Web.UI.HtmlControls.HtmlGenericControl hgc = new System.Web.UI.HtmlControls.HtmlGenericlControl("optgroup");
                        hgc.Attributes.Add("label",drs[i][name].ToString());
                    select.Controls.Add(hgc);
                }
        }
      

  3.   


    晕啊,这样报下面的错误
    System.Web.HttpException: “System.Web.UI.HtmlControls.HtmlSelect”不允许使用子控件。