GridView绑定大数据后,点击画面任意可提交的按钮后画面奔溃

hyde100 2013-07-30 01:11:57
如果,当数据量很大的情况下绑定GridView,然后点击画面上任意可提交的按钮后画面奔溃,显示“Internet Explorer 无法显示该页面”,数据里小的情况下则正常。

问题:画面在大数据的情况下,如何不让画面奔溃?就算显示的慢点也可以。我也知道可以在数据库中进行分页,但这个问题就是在全部显示的情况下怎样设置画面才可以不奔溃?
...全文
323 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
dd_zhouqian 2013-08-01
  • 打赏
  • 举报
回复
引用 29 楼 jason_dct 的回复:
[quote=引用 9 楼 hyde100 的回复:] 嗯,为了少连接数据库,将数据存放在VIEWSTATE中,就是这个VIEWSTATE导致了画面奔溃。
这样不行。 可以考虑使用存储过程分页,然后获取参数。 [/quote]
by_封爱 2013-07-31
  • 打赏
  • 举报
回复
这个跟分页或者viewstate已经没有关系了.. 你想想 如果你打开一个html 里面有100W行代码 你认为客户端不会挂掉?? 打开一个100MB的记事本 你就知道了..
xianhabao820 2013-07-31
  • 打赏
  • 举报
回复
为什么要把数据全部都取出来,是因为关联的表太多了吗? 你可以选择用datatable保存数据或者分页....
ltcszk 2013-07-31
  • 打赏
  • 举报
回复
引用 6 楼 hyde100 的回复:
客户端将全部数据取了出来,然后放在VIEWSTATE中以便分页
你最好去msdn上看下viewstate的机制,别太想当然了
段传涛 2013-07-31
  • 打赏
  • 举报
回复
引用 9 楼 hyde100 的回复:
嗯,为了少连接数据库,将数据存放在VIEWSTATE中,就是这个VIEWSTATE导致了画面奔溃。
这样不行。 可以考虑使用存储过程分页,然后获取参数。
非我莫属One 2013-07-31
  • 打赏
  • 举报
回复
mindsky 2013-07-31
  • 打赏
  • 举报
回复
楼主你要减少数据库的访问可以把取出来的数据放在Cache里,ViewState会在页面来回传递时保存状态值,数据量太大了(默认超过4096K)在回传时IIS会拒绝访问的
  • 打赏
  • 举报
回复
查询数据的时候就要分页了,页面宏大时,可以利用ajax请求 你最好也不要使用gridview自带的分页,那个是内存分页
gclol 2013-07-31
  • 打赏
  • 举报
回复
引用 17 楼 Johnson674423584 的回复:
用分页好,如果想减少读取数据库,用缓存。
+1
lyx266 2013-07-31
  • 打赏
  • 举报
回复
gridview若是太多数据的话 viewstate会很大. 这时候你gridview只是用来显示数据不需要回发后台操作的话,可以手动将gridview的viewstate关闭.不知道这样可以解决楼主的问题不
dd_zhouqian 2013-07-31
  • 打赏
  • 举报
回复
引用 18 楼 ltcszk 的回复:
[quote=引用 6 楼 hyde100 的回复:] 客户端将全部数据取了出来,然后放在VIEWSTATE中以便分页
你最好去msdn上看下viewstate的机制,别太想当然了[/quote] http://www.cnblogs.com/yzxchoice/archive/2006/09/08/498499.html 这篇文章写的不错,可以学习下
  • 打赏
  • 举报
回复
不知道你发现没,你一直走过来的程序都是需要参照物的,唯物主义
KeepSayingNo 2013-07-31
  • 打赏
  • 举报
回复
采用分页,分页不一定要用存储过程分页,你现在存储过程可以不改,然后用jqGrid,然后下一个handler文件,在里面进行数据的分页,jqGrid的数据源绑定这个文件即可。
Ho_Johnson 2013-07-30
  • 打赏
  • 举报
回复
用分页好,如果想减少读取数据库,用缓存。
卧_槽 2013-07-30
  • 打赏
  • 举报
回复
viewstate只不过是一个加密过的hidden 类型的input。input的value长度是有上限的,如果你把很多数据放在里面,当然会崩溃。 你的设计真的很垃圾。 撸主的基础知识需要恶补。
hyde100 2013-07-30
  • 打赏
  • 举报
回复
引用 14 楼 sqlajax 的回复:
出现这个异常的原因正是因为上年12月29号那次微软发布的最后一次非正常更新程序引起的.在这次安全更新中对于asp.net单次的提交量做了一个最大量限制1000,出现这个异常正是因为页面提交量超过了1000这个限制.这个可以在web.config中更改: <appSettings> <add key="aspnet:MaxHttpCollectionKeys" value="5000" /> </appSettings>
改了画面还是奔溃啊。。。
sqlajax 2013-07-30
  • 打赏
  • 举报
回复
出现这个异常的原因正是因为上年12月29号那次微软发布的最后一次非正常更新程序引起的.在这次安全更新中对于asp.net单次的提交量做了一个最大量限制1000,出现这个异常正是因为页面提交量超过了1000这个限制.这个可以在web.config中更改: <appSettings> <add key="aspnet:MaxHttpCollectionKeys" value="5000" /> </appSettings>
Change_L 2013-07-30
  • 打赏
  • 举报
回复
你这viewstate得多大啊...
宝_爸 2013-07-30
  • 打赏
  • 举报
回复
还有就是Grid中并不显示所有的Column,选中某行的时候,在显示全部的项。
宝_爸 2013-07-30
  • 打赏
  • 举报
回复
试一试这个, <httpRuntime maxRequestLength = "YOUR SIZE IN KB" /> 不过我觉得这不是一个好主意。看你的权衡了。 是减少流量,减小ViewState. 还是减轻数据库压力,减少查询次数,增大ViewState.
加载更多回复(10)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧