最近开发一个商品管理系统遇到下拉列表框问题数据库products      id    name         fatherid
      1    书籍           0
      2    CD           0
      3    软件           0 
      4    计算机类       1
      5    文学类         1
      6    流行歌曲       2
      7    古典音乐       2
      8    乐队           2
      9    游戏           3
      10   办公软件       3
      .
      .
      .
填充到dropdownlist中是按照id排序的,想按照一下方式显示,请叫可以通过哪些方法实现?
    书籍
      计算机类
      文学类            
    CD
     流行歌曲
     古典音乐
     乐队           
   软件                           
    游戏           
    办公软件       
         
 并且判断如果fatherid为0则表示为主类,不能选择。只能对子类进行选择。不同类别的选项背景用不同颜色表示,以示区别。同时也希望大家能够讨论一下一般处理的情况。        

解决方案 »

  1.   

    你的需求实现倒是可以实现,不过太麻烦了,维护和扩展都不方便,还不如改下设计思路,用两个dropdownlist来实现,类似于省市二级联动的效果,属于比较常规的实现方式,网上的例子也到处都是
      

  2.   

    1.
    手动【递归】创建添加项2. 颜色设置
    // 
    <listitem style="color:red" value="1">Item#1</listitem>// 
    ListItem item = new ListItem();
    item.Attributes["style"] = "color:red";
      

  3.   

    这个我做过 嘻嘻把数据存在一个DataView里  
    用RowFileter过滤 拼串 
    最后绑定  挺好玩的
    如果要代码  发我的mail吧  [email protected]
      

  4.   

    这个很容易 用select~(dropdownlist到了网页上也是select~)
    <select>
       <optgroup id="l1" label="书籍">
          <option>计算机类</option>
          <option>文学类</option>
       </optgroup>
       <optgroup label="CD">
          <option> 流行歌曲</option>
          <option>古典音乐</option>
          <option>乐队</option>
       </optgroup>
    </select>要动态实现的话 可以直接在HTML里写循环~
      

  5.   

    with thetable as
    (
      select name,Id,Rank() over(partition by fatherId order by Id) Rank from products 
    )
    select * from thetable
    这样可以选出各个按各个fatherId为分类的各选项,在DropDownList中可以实现这些,但是比较麻烦。。建议还是采用AJAX联动的方式比较好一些,把根类绑定到一个DDL中。子选项放到另一个DDL中。。
      

  6.   

    LSSLU是正解
    dropdownlist里有分组的属性,LZ可以试试看
      

  7.   

    我有好的方法
    http://hi.baidu.com/simadi/blog/item/d3e6293801bcd823b9998fe6.html