我有一个关于树视图控件的问题。我对C#非常陌生,并且一直坚持如何将ID添加到相应的树节点中。我不确定这行代码是否包含ID,如果不是,那么我应该包含什么。我想获取所选节点的ID。我该怎么做,请告诉我。我的代码如下-
提前谢谢。
private void PopulateTreeView()
{
treeDepartments.Nodes.Clear();
String strConn = "Server =server;Database =DB;Integrated Security = True;";
SqlConnection conn = new SqlConnection(strConn);
SqlDataAdapter da = new SqlDataAdapter("Select * from tSubDepartments", conn);
SqlDataAdapter daCategories = new SqlDataAdapter("Select * from tDepartments", conn);
da.Fill(ds, "tSubDepartments");
daCategories.Fill(ds, "tDepartments");
ds.Relations.Add("Dept_SubDept", ds.Tables["tDepartments"].Columns["dpCode"], ds.Tables["tSubDepartments"].Columns["dpCode"]);
foreach (DataRow dr in ds.Tables["tDepartments"].Rows)
{
TreeNode tn = new TreeNode(dr["dpName"].ToString());
foreach (DataRow drChild in dr.GetChildRows("Dept_SubDept"))
{
tn.Nodes.Add(drChild["sdName"].ToString());
}
treeDepartments.Nodes.Add(tn);
}
}发布于 2013-03-19 09:03:29
我假设,根据代码,您正在使用WinForms,所以我的答案将基于这一假设。ThreeNode对象具有object类型的Tag属性(类似于WinForms中的任何Control类),您可以在其中存储所需的任何内容,但在以后要使用它时,应小心将其转换回类型。所以你可以像这样修改你的代码:
private void PopulateTreeView()
{
treeDepartments.Nodes.Clear();
String strConn = "Server =server;Database =DB;Integrated Security = True;";
SqlConnection conn = new SqlConnection(strConn);
SqlDataAdapter da = new SqlDataAdapter("Select * from tSubDepartments", conn);
SqlDataAdapter daCategories = new SqlDataAdapter("Select * from tDepartments", conn);
da.Fill(ds, "tSubDepartments");
daCategories.Fill(ds, "tDepartments");
ds.Relations.Add("Dept_SubDept", ds.Tables["tDepartments"].Columns["dpCode"], ds.Tables["tSubDepartments"].Columns["dpCode"]);
foreach (DataRow dr in ds.Tables["tDepartments"].Rows)
{
TreeNode tn = new TreeNode(dr["dpName"].ToString());
tn.Tag = dr["dpID"]; //put the ID into the Tag property of the node
foreach (DataRow drChild in dr.GetChildRows("Dept_SubDept"))
{
TreeNode childTn = new TreeNode(drChild["sdName"].ToString());
childTn.Tag = drChild["sdID"];
tn.Nodes.Add(childTn);
}
treeDepartments.Nodes.Add(tn);
}
}当您想要提取TreeNode的ID时,只需像这样使用它(假设ID是int类型):
int ID = (int)tn.Tag;https://stackoverflow.com/questions/15489431
复制相似问题