今天想在一个DropDownList中显示出部门的分级结构,在网上找了一段时间,没找到实现的源码,于是自已尝试着写了一个。
实现的效果:
数据库结构如下所示:
Depart_Up表示的是上级单位的ID号。如果没有父目录则Depart_Up为0,程序用递归来实现:
其中,ddepart.ReturnChildTable(id),是返回所有父目录为该ID的Department记录。ddepart是数据层的对象。代码如下:
这样,一个分级的DropDownList就实现了,代是,这个DropDownList的缺点也是很明显的,就是效率太低了。只适合部门比较少的单位,如果达几千个部门,那么就要换更好的实现方法。
不知道别的无限分级DropDownList是怎么实现的,望各位达人指点一二。