110,536
社区成员
发帖
与我相关
我的任务
分享
string sql = " ";
DataTable dt1 = halper.GetDataSet(sql);
//从treeview_list表内读取整个各节点之间关系表,不包括被删除的,同时排序,主要考虑到各功能段在箱体内的顺序问题
TreeView tree = new TreeView();
TreeNode[] nodes = new TreeNode[dt1.Rows.Count + 1];//新建一个treenode数组,存储每一个treenode,便于后续子节点直接可以增加在父节点上
for (int i = 0; i < dt1.Rows.Count; ++i)//遍历每一个节点,然后将其增加到相应的父节点下
{
TreeNode tn = new TreeNode();
tn.Text = ((string)dt1.Rows[i]["名稱"]).Trim();//数据库提取的text含有空格,要去除空格
int pos = (int)dt1.Rows[i]["編號"];
int parent = (int)dt1.Rows[i]["id"];//先获取父节点的id号
if ((int)dt1.Rows[i]["編號"] == 0)//如果是项目节点,直接在根节点上增加
{
treeView1.Nodes.Add(tn);
}
else//其他节点
{
int number = (int)dt1.Rows[i]["編號"];
//tree.Nodes[0].Nodes[number].Nodes[parent].Nodes.Add(tn);
//在父节点上增加当前节点
nodes[parent].Nodes.Add(tn);//此處彈出異常System.NullReferenceException: '並未將物件參考設定為物件的執行個體。'此時我參考tn其實是有值的。
}
}
/// <summary>
/// 重置TreeView菜單
/// </summary>
/// <param name="sql">sql語句</param>
private void setTVList()
{
string sql = "select * from 組織架構 order by id,名稱,編號 ";
DataTable dt1 = halper.GetDataSet(sql);
//从treeview_list表内读取整个各节点之间关系表,不包括被删除的,同时排序,主要考虑到各功能段在箱体内的顺序问题
TreeView tree = new TreeView();
//新建一个treenode数组,存储每一个treenode,便于后续子节点直接可以增加在父节点上
TreeNode[] nodes = new TreeNode[dt1.Rows.Count + 1];
//遍历每一个节点,然后将其增加到相应的父节点下
for (int i = 0; i < dt1.Rows.Count; ++i)
{
TreeNode tn = new TreeNode();
//数据库提取的text含有空格,要去除空格
tn.Text = ((string)dt1.Rows[i]["名稱"]).Trim();
int pos = (int)dt1.Rows[i]["編號"];
//先获取父节点的id号
int parent = (int)dt1.Rows[i]["id"];
//如果是项目节点,直接在根节点上增加
if ((int)dt1.Rows[i]["編號"] == 0)
{
treeView1.Nodes.Add(tn);
}
//else//其他节点,註銷子節點,主節點是可以正常顯示出來的。
//{
// int number = (int)dt1.Rows[i]["編號"];
// //tree.Nodes[0].Nodes[number].Nodes[parent].Nodes.Add(tn);
// nodes[parent].Nodes.Add(tn);//在父节点上增加当前节点
//}
}
}
--------------以下是表結構---------------
id 名稱 編號
1 總經理室 0
2 財務室 0
3 行政管理中心 1
4 信息技術部 3