- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的页面上有一个 ListView ,可以显示 10,000 行或更多行。
页面顶部有一个简单的“客户”下拉菜单,可以自动回发以更改数据过滤器。我一直在尝试优化这个例程,我注意到大部分时间都花在将 ViewState 从客户端传输到服务器上。
我已将 EnableViewState="false"添加到 ListView 控件,但它并没有改变它。我查看了 Fiddler 中的请求,如果屏幕上的客户有 50 行,则请求内容长度很短 - 如果他们有 10,000 行或其他内容,则请求内容长度很大。
有人解决了吗?
最佳答案
发生这种情况是因为数据绑定(bind)控件(包括 ListView )会将其数据源存储到 View 状态中。因此 View 状态会很大,导致页面大小膨胀。
解决方案之一是禁用 ListView 的 View 状态并在每次页面回发时绑定(bind)它。
更好的解决方案是进行数据存储侧分页,即如果仅显示 50 行,则仅从数据库中获取 50 行。这在 ASP.NET 中通常称为自定义分页,您可以找到适合您的数据访问技术的自定义分页的多个示例。例如,
使用 Entity Framework 和ObjectDataSource自定义分页:http://geekswithblogs.net/Frez/articles/using-the-entity-framework-and-the-objectdatasource-custom-paging.aspx
您可以使用 SQL Server 排名函数在存储过程中进行分页:http://msdn.microsoft.com/en-us/library/bb445504.aspx
关于ASP.Net ListView 回发速度慢, ListView 中有大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6756328/
我是一名优秀的程序员,十分优秀!