我的数据视图大约有2000行。在页面加载时,我想将dataview绑定到对象datagrid:
dataGrid.DataSource = dv;
dataGrid.DataBind();
然而,时间反应非常高(几分钟)。我该怎么做才能让它更快?或者至少我不能冻结客户?
答案 0 :(得分:2)
首先检查您的查询。一旦你获得它的速度尽可能快(包括可能每晚在临时表或其他东西中预先缓存数据),然后转移到ASP.NET代码并加快速度。
如果可以,请关闭网格的viewstate。视图状态会显着增加页面大小。部分问题只是提供原始HTML和viewstate的MB,然后再渲染它。
我会采取的步骤:
你可以在一个页面上获得2k +记录,但是你必须做得非常紧张。
最后,摆脱网格,只需使用文字控件,直接输出原始,干净,紧凑的HTML。在这种情况下,请务必关闭文字控件的viewstate。
答案 1 :(得分:0)
检查从dB返回数据所需的时间。如果它不是太长,问题可能在于尝试渲染2000行的页面。
如果是这样,分页会加快速度。
答案 2 :(得分:0)
我会使用某种类型的默认过滤器减少您在查询中带回的项目数。屏幕上的大量数据无论如何都会导致糟糕的用户体验,默认过滤器会加快页面的呈现速度。如果用户请求2000行数据然后让他们拥有它......但是我会避免使用datagrid进行分页,因为分页在执行查询后丢弃了当前“页面”中不存在的记录并带来了返回所有2000条记录。因此,如果将分页设置为20个项目,查询仍将恢复所有2000个记录,并且每次用户请求新页面时网格将删除其他1980个记录...