我编写了一个动态创建树节点和子节点的代码,但添加子节点需要很长时间,因为代码遍历每个项目然后创建子树节点,是否有任何方法可以将所有子节点添加到一个节点中去吗?
TreeNode TreeNodeDatabase = new TreeNode();
TreeNodeDatabase.Text = "Database";
TreeNodeDatabase.Value = "Database";
TreeNodeDatabase.Expanded = false;
TreeView1.Nodes.Add(TreeNodeDatabase);
//Table
TreeNode TreeNodeTables = new TreeNode();
TreeNodeTables.Text = "Table";
TreeNodeTables.Value = "Table";
TreeNodeTables.Expanded = false;
TreeNodeDatabase.ChildNodes.Add(TreeNodeTables);
//Now Add Child Nodes to Table
DataSet ds = new DataSet();
HandleDB db = new HandleDB();
ds = db.returnData("select top 1 name from sys.tables", srvr, dbname);
int i = 0;
for (i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode TreeNodeTableName = new TreeNode();
TreeNodeTableName.Text = ds.Tables[0].Rows[i][0].ToString();
TreeNodeTableName.Value = ds.Tables[0].Rows[i][0].ToString();
TreeNodeTableName.Expanded = false;
TreeNodeTables.ChildNodes.Add(TreeNodeTableName);
}
答案 0 :(得分:0)
除非有理由在初始加载期间加载整个树视图,否则您应该按需加载。
最简单的方法是:
答案 1 :(得分:0)
TreeView有一个节点TreeNodeCollection。你可能会这样。
TreeView1.Nodes.AddRange([yourtreenodecollection])
您仍然需要通过构建新的TreeNodeCollection来进行一些循环,但是这会比将每个TreeNode手动添加到树中提供更好的性能。似乎没有一种将TreeView绑定到数据库的明确方法。