导航

实现多级下拉列表

Posted on 2004-09-10 20:58  ChenRui  阅读(2234)  评论(4编辑  收藏  举报

MS-SQL 里有个“department”表,由departmentID, departmentName, parentDeptID三个字段组成,如果没有parentDept,则parentDeptID=0. department在表中是任意规则排序的。
现在要根据这个关系来实现一个多级的下拉列表。效果类似于下面


如何从department表中取出所有数据动态生成呢?现在MSSQL里边写个函数GetSubTree,得到某个departmentID的所有下属department 具体代码请参考这里 .(会把某个department的层数求出)
然后写一个存储过程调用这个函数来实现一些美观字符的添加, 参数为parentID。

最后在程序里调用存储过程。取出某个departmentID的所有子department。注意这里只是得出某个最高级别department的子树。如何得出全部的呢?

先求出所有的parentDeptID为0的一个DataTable dtChild,然后遍历其每一行并求出相应的子树,添加到另外一个DataTable dtAll中,最后 DropDownList.DataSource = dtAll.就OK了。

虽然是一个小功能,却费了不少周折,希望有心人能把它写成控件就好了。