treelist设置展开卡顿
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了treelist设置展开卡顿相关的知识,希望对你有一定的参考价值。
treelist设置展开卡顿:Devexpress中的TreeList是经常用到的数据浏览管理控件,它的数据加载方式通常是赋予DataSource数据源,并指定ParentFieldName和KeyFieldName来确定"父子"关系,这种绑定方式操作简单,但加载和操作十分卡顿(100个节点),用户体验非常差。推荐使用AppendNode逐条加载,此方法有多个重载方法,支持设置节点数据对象(object数据组或DataRow)、父节点ID、父节点、图像索引、选择状态、tag值等。 参考技术A 最近使用 Dev TreeList,在添加4W行记录时,居然花了10多秒,测试发现 使用AppendNode 和 Node.SetValue,会非常耗时!在添加或更新时,虽然已使用了BeginUnboundLoad 和 EndUnboundLoad. 最后换成使用DataSource,速度就非常快了.
创建对象时,对象中有一个Image属性,是从ImageList.Images中取图片,测试发现这个也非常耗时,换成自定义的Images集合快了很多。应该是
每次访问ImageList.Images[i] 会创建新的Image对象造成的。
通过Node.SetValue更新StateImage很慢,于是换成了自定义了一列,通过更新DataSource数据源后,再调用 TreeList.Refresh实现。
TreeList的DataSource我绑定的是BindingList<T> 集合,更新T对象的某个属性后(该属性为Image类型),测试发现只有调用TreeList.Refresh界面才能正常更新。调用其它方如 TreeList.Update ,TreeList.Invalidate等都不保证界面能得到正确的更新. 参考技术B treelist设置展开卡顿的原因是,是treelist的代码和系统代码产生冲突,需要修改代码才能解决。 参考技术C 1、OptionsSelection:
EnableAppearanceForcusedCell:选中的Cell的Appearance设置是否可⽤。默认为True;EnableAppearanceForcusedRow:选中的Node的Appearance设置是否可⽤。默认为True InvertSelection:设置选中风格是只应⽤于选中的Cell,还是应⽤于除选中的Cell之外的所有Cell。默认为False,即后者;
MultiSelect:是否可以选择多个Node。默认为False。
2、OptionsView:
DevExpress TreeList GridView 样式设置
1、GridView 样式设置
this.gridViewUser.PaintStyleName = "Flat";
2、TreeList 样式设置
this.treeListDep.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat; this.treeListDep.LookAndFeel.UseDefaultLookAndFeel = false;
以上是关于treelist设置展开卡顿的主要内容,如果未能解决你的问题,请参考以下文章
kendo ui 查找treelist里的子控件并设置是否显示的方法
[DevExpress]treeList1背景色设置与自定义图标
DevExpress TreeList GridView 样式设置