我正在尝试将子节点添加到树视图控件中的父节点。在degbugger中一切运行良好,它们看起来好像已经被添加,但我能看到的只是父节点。有人可以对此有所启发吗?感谢。
foreach (var item in agencyListRoot)
{
TreeNode parentNode = new TreeNode();
TreeNode childNode = new TreeNode();
if (item.HeirID.ToString() == "/1/")
{
parentNode.Text = item.AgencyName.ToString();
tv_Agencies.Nodes.Add(parentNode);
}
if (item.HeirID.ToString() == "/1/2/")
{
childNode.Text = item.AgencyName.ToString();
parentNode.ChildNodes.Add(childNode);
}
}
答案 0 :(得分:1)
可能这段代码对你有帮助..
foreach (DataRow dr in dtTree.Select("parent_id is null")) // To get the each parent node in the table or anything else
{
TreeNode node = new TreeNode(dr["name"].ToString(), dr["s_no"].ToString());
TreeView1.Nodes.Add(node); // Adding Parent node to the treeview
string serial_no = dr["s_no"].ToString(); // store parent node value or text in an variable
foreach(DataRow dr1 in dtTree.Select("parent_id = '"+serial_no+"'")) // To get child node of parent node
{
TreeNode child_node = new TreeNode(dr1["name"].ToString(), dr1["s_no"].ToString());
node.ChildNodes.Add(child_node);// Here adding the child node to particular parent node.
}
}
如果你想要我的表结构意味着。像这样创建你的表。
谢谢和问候, 的内甚。小号强>
答案 1 :(得分:0)
是的,ASP.NET树控件是变化无常的。您需要添加所有子节点优先,然后将父节点添加到树视图中。
答案 2 :(得分:0)
var root = new TreeNode("root");
TreeNode group = root;
所以这就是解决方案。不是最漂亮的,但它适用于我需要的东西。
foreach (var item in agencyListRoot)
{
if (item.HeirID.ToString() == "/1/")
{
group = new TreeNode(item.AgencyName.ToString());
root.ChildNodes.Add(group);
}
else if (item.HeirID.ToString() == "/1/2/")
{
TreeNode childNodeU = new TreeNode(item.AgencyName.ToString());
group.ChildNodes.Add(childNodeU);
}
}