我正在使用Gridview来保存记录,用户可以单击每个记录中的复选框以指示他/她想要保存该记录(在编辑数据之后),并且用户可以根据需要选择尽可能多的记录。立即保存它们。
在后面的代码中,我将循环遍历gridview并查找用于保存记录的复选框。如果我禁用Gridview的视图状态。我无法循环它,但如果我启用了gridview的viewstate,那么gridview视图状态可以高达1mb甚至更高。
减少此girdview控件上viewstate的最佳方法是什么,或者我的方法是错误的?
答案 0 :(得分:1)
如果无法缩小视图状态的大小,可以尝试其他解决方案。您可以将viewstate存储在服务器上。这篇博客文章展示了如何实现这个目标:
Reducing the page size by storing ViewState on Server
我在一个拥有庞大视图状态的页面上实现了类似的功能,并且效果很好。我会尝试优化视图状态,然后再转到类似的东西,因为它会产生一些开销。
我认为我使用过这篇文章(已经有一段时间了)并且必须为SQL修改它,因为它使用了文件系统: Persisting View State to the File System
答案 1 :(得分:1)
如果您对此想法持开放态度,可能需要考虑实施自定义分页以减少返回的记录数。也许从默认分页开始,但返回所有记录。如果你想要更好的性能,那么自定义分页就是你的选择。
一些有用的材料:
答案 2 :(得分:0)
我同意Alex的观点。您还可以使用临时表来保存数据。我在一个项目中使用了这个场景,它运行正常。您也可以使用缓存,但是再次将负载放在Web服务器上(除非您有某种分布式缓存)。