使用DrowpDownList的问题

时间:2021-08-21 21:29:00
最近开发一个商品管理系统遇到下拉列表框问题

数据库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则表示为主类,不能选择。只能对子类进行选择。不同类别的选项背景用不同颜色表示,以示区别。同时也希望大家能够讨论一下一般处理的情况。        

11 个解决方案

#1


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

#2


ls说的有道理。
建议楼主换种方式来实现!

#3


1.
手动【递归】创建添加项

2. 颜色设置
// 
<listitem style="color:red" value="1">Item#1</listitem>

// 
ListItem item = new ListItem();
item.Attributes["style"] = "color:red";

#4


这个我做过 嘻嘻

把数据存在一个DataView里  
用RowFileter过滤 拼串 
最后绑定  挺好玩的
如果要代码  发我的mail吧  xep.com@163.com

#5


这个很容易 用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里写循环~

#6


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中。。

#7


谢谢大家的回帖,受益颇深

#8


似乎不是很难解决,顶到明天

#9


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

#10


mark ^_^

#11


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

#1


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

#2


ls说的有道理。
建议楼主换种方式来实现!

#3


1.
手动【递归】创建添加项

2. 颜色设置
// 
<listitem style="color:red" value="1">Item#1</listitem>

// 
ListItem item = new ListItem();
item.Attributes["style"] = "color:red";

#4


这个我做过 嘻嘻

把数据存在一个DataView里  
用RowFileter过滤 拼串 
最后绑定  挺好玩的
如果要代码  发我的mail吧  xep.com@163.com

#5


这个很容易 用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里写循环~

#6


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中。。

#7


谢谢大家的回帖,受益颇深

#8


似乎不是很难解决,顶到明天

#9


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

#10


mark ^_^

#11


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