上一文中介绍了TreeList的绑定,但绑定的前提是需要数据库中有ID,ParentID两个字段,(ParentID表示所属的记录),树形结构除了指定ParentID外,还可能用到另外一种编码的方式(如用友ERP都是用这种模式),例如在一个表中有
cDepNo cDepName
2 营业部201 营业报价课
202 营业跟单课
3 采购部
301 采购开发课
302 采购跟单课
这种结构方式在TreeList中没有提供相关绑定方法,之前看到有一位仁兄介绍使用treeList1.AppendNode()方法加载子项目。
经过两个小时的研究,我建议使用如下方法:
创建一个函数,这个函数将上述表结构改成带有ParentID的表,不需要改数据库,从数据库中查询时自动加上ParentID,函数思路如下:
private DataTable BuildTable(string tableName, string codeColumn,string displayColumn)
{
//装入数据
string str = string.Format("SELECT {0} FROM {1} ORDER BY {2}", displayColumn, tableName,codeColumn);
DataTable source = DAL.DataOperate.GetData(str);
source.Columns.Add("ParentID