public void Bind()
{
string sql;
this.treeList1.ClearNodes();
sql = "select deptID,deptName from sys_tx_kqSystem_dept where TreeLevel = 2 order by deptID ";
if (!DB.AF.execSql(sql, sqlconnOA, out dt))
{
MessageBox.Show("Error!");
return;
}
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
TreeListNode nodeTemp = treeList1.AppendNode(dt.Rows[i]["deptID"], null);
//nodeTemp.SetValue(treeList1.Columns[0], dt.Rows[i]["deptID"]);
nodeTemp.SetValue(treeList1.Columns[0], dt.Rows[i]["deptName"]);
nodeTemp.Tag = dt.Rows[i];
sql = "select deptID,deptName from sys_tx_kqSystem_dept where UpCode ='" + dt.Rows[i]["deptID"] + "'";
DataTable ds;
if (!DB.AF.execSql(sql, sqlconnOA, out ds))
{
MessageBox.Show("父:Error!");
return;
}
if (ds.Rows.Count > 0)
GetChildNode(nodeTemp, dt.Rows[i]["deptID"]);
}
}
}
public void GetChildNode(TreeListNode nodeTemp, object parent)
{
string sql = "select deptID,deptName from sys_tx_kqSystem_dept where UpCode=" + parent + " order by deptID";
DataTable zi;
if (!DB.AF.execSql(sql, sqlconnOA, out zi))
{
return;
}
if (zi.Rows.Count > 0)
{
for (int i = 0; i < zi.Rows.Count; i++)
{
//MessageBox.Show("子:" + zi.Rows[i]["deptID"].ToString());
TreeListNode nodelist = nodeTemp.TreeList.AppendNode(zi.Rows[i]["deptID"], nodeTemp);
//nodelist.SetValue(treeList1.Columns[0], zi.Rows[i]["deptID"]);
nodelist.SetValue(treeList1.Columns[0], zi.Rows[i]["deptName"]);
nodelist.Tag = zi.Rows[i];
sql = "select deptID,deptName from sys_tx_kqSystem_dept where UpCode ='" + zi.Rows[i]["deptID"] + "'";
DataTable ds;
if (!DB.AF.execSql(sql, sqlconnOA, out ds))
{
MessageBox.Show("父1:Error!");
return;
}
if (ds.Rows.Count > 0)
GetChildNode(nodelist, zi.Rows[i]["deptID"]);
}
}
}
效果圖:
但是我這個語法加載速度還是很慢的,每次都得反應好長時間。聽說可以結合josn先把數據放到前臺,然後再怎麼怎麼的可以提高效率,這個後面再研究,等我琢磨出來了再更新。