日期:2014-05-19  浏览次数:21067 次

求在ListView上显示上百万条记录的方法
用一般的方法显示速度无法忍受.希望路过的高手帮助一下。

------解决方案--------------------
分页显示...

没有任何软件会傻到要求一屏显示上百万条记录...
------解决方案--------------------
只显示可见部分,好象有个事件,会通知你当前可见部分的索引号范围,只要在里面处理就行了,另外,要生效好象还要设置一个属性吧。
没试过,瞎说,不知道是不是这样。
------解决方案--------------------
一次性读取完全不可能,加载就受不了的
------解决方案--------------------
分页加载吧
------解决方案--------------------
用一次性填充窗体可见的部分...

然后开一个线程,一边读取一边添加到ListView上...

我就不信,看的人有电脑那么快...
------解决方案--------------------
但是.Net如果另外线程来操作的话——基本上也卡死了,.Net的特色
------解决方案--------------------
用个backgroundworker 异步加载
这是比较可行的方案

ps 同意楼上的某些看法
显示的数据超过1000条的就是傻子的行为

客户不会看的
------解决方案--------------------
请问LS,这个VirtualMode属性只是标识控件提供自己的数据管理操作.那又能意味着什么???
------解决方案--------------------
而且把(虚拟模式)VirtualMode设为True后,不可以添加Item...

------解决方案--------------------
模仿 Sql Server 中直接打开表读取数据.

捕获滚动条事件,一次加载一屏显示的行数.
------解决方案--------------------
When you set the VirtualMode property to true, you should handle the RetrieveVirtualItem event, providing a valid ListViewItem.

If the View property is set to Tile, the value will automatically be changed to LargeIcon when VirtualMode is set to true.

http://msdn2.microsoft.com/en-us/library/system.windows.forms.listview.virtualmode.aspx
------解决方案--------------------
100W条夸张了,100条数据listview的显示速度都已让人无法忍受.非必要还是不要用listview,加载数据太慢.