利用循环从数据库中通过限定条件提取数据绑定给treeview,但是当需要绑定的数据过多时,会造成程序的崩溃,这该怎么解决?private void CreateTreeView(TreeNodeCollection nodes, DataTable dataSource, int parentid)
{
//构建查询条件
string fileter;
fileter = string.Format(BC_BAS_SKU_Type.ColumnsName.parentID + "={0}", parentid);
//获取与筛选条件匹配的所有Datarow对象
DataRow[] drarr = dataSource.Select(fileter);
TreeNode node;
//循环构建树节点
foreach (DataRow dr in drarr)
{
node = new TreeNode();
node.Text = Convert.ToString(dr[BC_BAS_SKU_Type.ColumnsName.name]);
node.Tag = Convert.ToString(dr[BC_BAS_SKU_Type.ColumnsName.iD]);
nodes.Add(node);
//递归实现子节点的构建
CreateTreeView(node.Nodes, dataSource, Int32.Parse(node.Tag.ToString()));
}
}
TreeViewWinFormDigital River
{
//构建查询条件
string fileter;
fileter = string.Format(BC_BAS_SKU_Type.ColumnsName.parentID + "={0}", parentid);
//获取与筛选条件匹配的所有Datarow对象
DataRow[] drarr = dataSource.Select(fileter);
TreeNode node;
//循环构建树节点
foreach (DataRow dr in drarr)
{
node = new TreeNode();
node.Text = Convert.ToString(dr[BC_BAS_SKU_Type.ColumnsName.name]);
node.Tag = Convert.ToString(dr[BC_BAS_SKU_Type.ColumnsName.iD]);
nodes.Add(node);
//递归实现子节点的构建
CreateTreeView(node.Nodes, dataSource, Int32.Parse(node.Tag.ToString()));
}
}
TreeViewWinFormDigital River
在BeforeExpaned事件里判断加载下级节点
....,跟windows资源管理器加载目录树一个道理