Winform中TreeView绑定过多数据时,造成程序崩溃,该如何解决
Winform中TreeView绑定过多数据时,造成程序崩溃,该怎么解决?
利用循环从数据库中通过限定条件提取数据绑定给treeview,但是当需要绑定的数据过多时,会造成程序的崩溃,这该怎么解决?
------解决方案--------------------
调侃下,你觉得作为一个正常人来讲,100W 条他能点么?
开玩笑啊!~
------解决方案--------------------
你先加载第一级节点,就是parentid为0的节点,然后判断下面有无子级,有的话,给节点下面加一个Text为“”的空节点
在BeforeExpaned事件里判断当前节点下是不是只有一个节点且改节点Text="" , 如果是,则从datasource里查找当前节点的下级节点加载到当前节点下,加载下级节点时,判断该下级节点下有无子级别,有的话,给该下级节点下面加一个Text为“”的空节点
....,
跟windows资源管理器加载目录树一个道理
利用循环从数据库中通过限定条件提取数据绑定给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()));
}
}
TreeView
WinForm
Digital River
------解决方案--------------------
调侃下,你觉得作为一个正常人来讲,100W 条他能点么?
开玩笑啊!~
------解决方案--------------------
你先加载第一级节点,就是parentid为0的节点,然后判断下面有无子级,有的话,给节点下面加一个Text为“”的空节点
在BeforeExpaned事件里判断当前节点下是不是只有一个节点且改节点Text="" , 如果是,则从datasource里查找当前节点的下级节点加载到当前节点下,加载下级节点时,判断该下级节点下有无子级别,有的话,给该下级节点下面加一个Text为“”的空节点
....,
跟windows资源管理器加载目录树一个道理