我们开发了 Asp.net Web 应用程序。我们正在使用 asp.net gridview 来显示记录和编辑。
在这里,我们在单个网格中有 5000 行和 23 列。绑定需要很长时间。我们的客户拒绝分页选项。如何使 5000 到 7000 条记录的绑定更快。
请指教。
谢谢
马伊尔
我们开发了 Asp.net Web 应用程序。我们正在使用 asp.net gridview 来显示记录和编辑。
在这里,我们在单个网格中有 5000 行和 23 列。绑定需要很长时间。我们的客户拒绝分页选项。如何使 5000 到 7000 条记录的绑定更快。
请指教。
谢谢
马伊尔
您应该实现自己的分页机制。问题是DataBind 检索所有7000 条记录(尽管仅显示/呈现了20 条)。例如,创建一个仅获取选定记录范围的存储过程(如果您在第 2 页上,则只需要显示记录 id > 20 和 <= 40 - 考虑到您的页面大小为 20)。使用 SQL Server CTE 获取行号(在 SQL Server 端)和 BETWEEN 等功能。此存储过程将仅返回您真正需要的那些记录。然后更改您的网格视图以从此存储过程中获取数据。
您可以像 facebook 墙一样在滚动上加载数据。
你的数据来自哪里?是数据库还是其他外部资源?
您可以使用缓存,这样您就不会从外部资源而是从内存中加载整个数据集。请注意,如果您的数据经常更改,此解决方案将不起作用。
另一种方法是使用某种部分加载机制,例如 Ajax。然而,这将需要改变方法,因为我不确定网格视图控件是否支持这一点。您必须创建自定义控件,然后对较小的数据块(例如 200 条记录)发出顺序请求(例如使用 Ajax)并显示它们。最终您将拥有完整的集合,但数据将更快可用。
最后,您可以将两者结合起来,以使其更快。