如何将无限级分类在ListBox1中显示?
小弟有张表branchbranch_dm,branch_dm_sj,branch_mc
1,0,'办公室'
21,2,'人事科劳动组'
11,1,'办公室小车队'
12,1,'办公室大车队'
2,0,'人事科'
211,21,'人事科劳动组SB分组'
3,0,'科技处'
... ...
请问如何才能在LISTBOX1中象如下格式显示?
办公室
办公室小车队
办公室大车队
人事科
人事科劳动组
人事科劳动组SB分组
科技处
...
谢谢各位弟兄
--------------------编程问答--------------------
public static DataTable GetTypeTree(DataTable tbs, string ValueField, string TextField, string ParentField)--------------------编程问答--------------------
{
DataTable tb = new DataTable();
tb.Columns.Add(ValueField, Type.GetType("System.String"));
tb.Columns.Add(TextField, Type.GetType("System.String"));
//Level,指定层级,加入新row时根据其上层row加一
tb.Columns.Add("Level", Type.GetType("System.Int32"));
DataRow row;
//先将顶级菜单放入tb
DataRow[] TopRows = tbs.Select(ParentField.ToString() + @" = '0'");
for (int i = 0; i < TopRows.Length; i++)
{
row = tb.NewRow();
row[0] = TopRows[i][ValueField].ToString();//绑定列的Value
row[1] = TopRows[i][TextField].ToString();//绑定列的Text
row[2] = 0;//0为第一级
tb.Rows.Add(row);
}
DataRow[] rows;
for (int i = 0; i < tb.Rows.Count; i++)//tb.Rows.Count这个数字也是不断的在增大的,因为不断的插入新行
{
// tb进行循环
string strSpace = "";
for (int j = 0; j < Convert.ToInt32(tb.Rows[i][2]); j++)
{
strSpace += " ";
}
rows = tbs.Select(ParentField + "=" + "'" + tb.Rows[i][0].ToString() + "'");//父级编号为此行的id
for (int j = rows.Length - 1; j >= 0; j--) //倒循环,结果可以正序
{//循环嵌套对刚才的
row = tb.NewRow();
row[0] = rows[j][ValueField].ToString();//绑定列的Value
row[1] = strSpace + "--" + rows[j][TextField].ToString();//绑定列的Text
row[2] = Convert.ToInt32(tb.Rows[i][2]) + 1;
tb.Rows.InsertAt(row, i + 1);
}
}
return tb;
}
/// <summary>
/// 树形结构的下拉列表显示
/// </summary>
/// <param name="tbs">树形结构数据源</param>
/// <param name="ValueField">绑定列的Value</param>
/// <param name="TextField">绑定列的Text</param>
/// <param name="ParentField">数据源中表示父结点的字段名称</param>
/// <returns></returns>
参数的注释给你,这个是绑定用的函数,我一般使用在下拉列表中 --------------------编程问答-------------------- UP。 --------------------编程问答-------------------- 太感谢了,能帮写一个吗?我新手,看不懂夜 --------------------编程问答-------------------- 大家再请明示一下,谢谢
补充:.NET技术 , ASP.NET