现在这将是一个非常荒谬的问题。但我能做什么,这是客户的要求。基本上,我们有一个网格(主 - 细节类型),可以达到大约1.5万多行(有可能在几年内达到30-50万行)。
我的客户端不需要任何分页,也不希望任何数据被裁剪。此外,他并没有完全使用最新的硬件,因此在浏览器上渲染是一个大问题。他希望通过在浏览器上打印或查看所有内容来查看所有内容。 (你们可能都认为这听起来多么疯狂,而且肯定是这样)。
现在我想通过快速渲染html来解决这个问题。目前它的一个简单的asp.net网格视图没有分页。这基本上呈现HTML表格。我认为我的选择是:
- 使用div手动渲染html(用于快速加载)
- 将其导出为pdf或excel(有没有办法导出而无需诉诸第三方控件?)
- 给手指(给客户:D j / k)
总结一下,最好的方法是在html上显示10,000多个数据记录?
考虑使用“滚动” Datatables的插件..
作为DataTables 1.8的一部分,发布了一个名为“Scroller”的新插件
作为下载包的一部分介绍。 Scroller是一个
为DataTables实现虚拟滚动,它提供了一个
垂直滚动表,滚动表的整个高度,
但只绘制可见显示所需的行,
导致业绩大幅增长。这非常令人兴奋
DataTables的插件不仅可以提高性能,还可以提高性能
因为它有效地提供了与表的新用户交互,
允许完全滚动非常大的数据集。
他希望通过打印来查看所有内容
这是查看所有信息的唯一可行解决方案。 PDF或Excel是 许多 更好地处理大量行。
进行渲染非常简单。只需设置excel mime类型并返回HTML表。
http://www.designdetector.com/archives/05/07/HTMLToExcelTheEasyWay.php
说到PDF,您可能必须使用像PDFSharp这样的外部库。
您应该进行分页 - 这并不意味着您一次只需要显示一页数据,而是应该一次检索并呈现一页数据(并且一个接一个地继续提取页面直到数据完成) 。
例如,在初始请求中从服务器发送第一页数据。设置js计时器并使用AJAX请求检索后续数据页并将其加载到浏览器中。您可以同时进行多个(比如3-4个)AJAX请求以检索页面 - 只有在这种方法中才能正确地实现排序。
我将亲自避免网格视图并使用手动java脚本(有jquery的帮助)渲染html表或使用一些java脚本模板引擎。我将使用JSON从服务器检索数据。
我知道这差不多晚了一年,但万一它可以帮助别人。
使用 SlickGrid - 它使用div而不是表格,这在IE中提供了更多的性能。检查一下 例