使用DrowpDownList的问题
最近开发一个商品管理系统遇到下拉列表框问题
数据库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则表示为主类,不能选择。只能对子类进行选择。不同类别的选项背景用不同颜色表示,以示区别。同时也希望大家能够讨论一下一般处理的情况。         
------解决方案--------------------你的需求实现倒是可以实现,不过太麻烦了,维护和扩展都不方便,还不如改下设计思路,用两个dropdownlist来实现,类似于省市二级联动的效果,属于比较常规的实现方式,网上的例子也到处都是
------解决方案--------------------ls说的有道理。
建议楼主换种方式来实现!
------解决方案--------------------1.
手动【递归】创建添加项
2. 颜色设置
//  
<listitem style="color:red" value="1">Item#1</listitem>
//  
ListItem item = new ListItem();
item.Attributes["style"] = "color:red";
------解决方案--------------------这个我做过 嘻嘻
把数据存在一个DataView里  
用RowFileter过滤 拼串 
最后绑定  挺好玩的
如果要代码  发我的mail吧  xep.com@163.com
------解决方案--------------------这个很容易 用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里写循环~
------解决方案--------------------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中。。
------解决方案--------------------似乎不是很难解决,顶到明天
------解决方案--------------------LSSLU是正解
dropdownlist里有分组的属性,LZ可以试试看
------解决方案--------------------mark ^_^