我根据原有的树状结构算法代码, 编写一个通用的算法, 利用反射原理, 递归的对数据进行筛选.
这样只需要访问数据库一次, 然后就在内存中遍历, 而且适合于所有具有(PID, ID, Name)属性的实体类集合的排序.
如我需要生成设备类型实体类集合的树状结构时候, 代码如下:
ArrayList equipTypelist = equipmentType.GetAll();
equipTypelist = CollectionHelper.GetTreeItems(equipTypelist);
this.ddlEquipmentTypes.DataSource = equipTypelist;
this.ddlEquipmentTypes.DataTextField = "Name";
this.ddlEquipmentTypes.DataValueField = "ID";
this.ddlEquipmentTypes.DataBind();
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
this.ddlEquipmentType.Items.Insert(0, new ListItem("(全部)", "0"));
|