Devexpress XtraTreeList 加载速度问题
2011-05-12 10:18
176 查看
测试一:建立一个测试工程,放入一个button和一个xtratreelist控件,在button事件中加入如下代码
privatevoidsimpleButton1_Click(objectsender,EventArgse) { treeList1.Nodes.Clear(); intnodecount=30000; for(inti=0;i<nodecount;i++) { treeList1.AppendNode(newobject[]{i.ToString(),"列2","列3","列4"},null); } }当点击按钮后就要开始等待(才三万条数据)。 测试二:测试一中的这个问题比较显性,呵呵,为什么这么说呢,因为我们工程中实现时是这样的。由于工程采用向导模式(当时在向导模式里的其它代码绕了半天), 我简化了一下代码如下(需要先将xtralist控件的visible属性设置为false,其它不变,这样可以直接看到问题):privatevoidsimpleButton1_Click(objectsender,EventArgse) { treeList1.Visible=false; treeList1.Nodes.Clear(); intnodecount=30000; for(inti=0;i<nodecount;i++) { treeList1.AppendNode(newobject[]{i.ToString(),"列2","列3","列4"},null); } treeList1.Visible=true; }
[code]这时我们运行程序后第一次点击速度会很快,但第二次点击时去像测试一的一样速度极慢,这是为什么呢?
通过简化的代码可以理解为在不可见的情况下加载速度快,可第二次为什么又慢了呢?没太想明白(有时间看看控件源码,查下原理)
解决办法:在开始处及结尾处加入xtratreelist的begininit()及endinit()方法,对测试一、二均有效
privatevoidsimpleButton1_Click(objectsender,EventArgse)
{
treeList1.BeginInit();
treeList1.Nodes.Clear();
intnodecount=30000;
for(inti=0;i<nodecount;i++)
{
treeList1.AppendNode(newobject[]{i.ToString(),"列2","列3","列4"},null);
}
treeList1.EndInit();
}
希望有此类的问题的朋友能少绕围路:)
通过对xtratreelist代码分析发现其实现了ISupportInitialize接口,《详细解释ISupportInitialize接口》对ISupportInitialize有详细描述。
[/code]
相关文章推荐
- DevExpress.XtraTreeList 操作大全
- 关于DevExpress的XtraTreeList使用方法总结
- DevExpress的XtraTreeList使用方法
- 关于DevExpress的XtraTreeList使用方法总结
- 树形列表成员- DevExpress.XtraTreeList.TreeList
- DevExpress.XtraTreeList 操作大全
- DevExpress TreeList 调优_绑定数据源方式, 放弃原来的AppendNode加载数据的方式
- Dev XtraTreeList 常见使用问题
- DevExpress TreeList 拖拽 到 XtraScrollableControl
- DevExpress控件之XtraTreeList
- DevExpress TreeList 调优_绑定数据源方式, 放弃原来的AppendNode加载数据的方式
- Devexpress TreeList 绑定 方式 速度 优化
- DevExpress控件XtraTreeList的使用心得
- DevExpress XtraTreeList的复选框 禁用
- DevExpress.XtraTreeList.TreeList控件:绑定数据源的例子
- DevExpress.XtraTreeList.TreeList 显示行号
- DevExpress TreeList 常见问题解决方法
- 怎样在DevExpress XtraTreeList中设置ToolTip?
- DevExpress.XtraTreeList.TreeList 数据源 必须要有两列
- 关于DevExpress的XtraTreeList使用方法总结【转载】