如果,当数据量很大的情况下绑定GridView,然后点击画面上任意可提交的按钮后画面奔溃,显示“Internet Explorer 无法显示该页面”,数据里小的情况下则正常。问题:画面在大数据的情况下,如何不让画面奔溃?就算显示的慢点也可以。我也知道可以在数据库中进行分页,但这个问题就是在全部显示的情况下怎样设置画面才可以不奔溃?

解决方案 »

  1.   

    客户端分页?难道你是首先把数据全部加载出来,然后再客户端分页?直接按需取数据哈,还有你是否在后台加ispostback判断
      

  2.   

    客户端将全部数据取了出来,然后放在VIEWSTATE中以便分页
      

  3.   

    嗯,为了少连接数据库,将数据存放在VIEWSTATE中,就是这个VIEWSTATE导致了画面奔溃。
      

  4.   

    试一试这个,
    <httpRuntime
       maxRequestLength = "YOUR SIZE IN KB"
    />不过我觉得这不是一个好主意。看你的权衡了。
    是减少流量,减小ViewState.
    还是减轻数据库压力,减少查询次数,增大ViewState.
      

  5.   

    还有就是Grid中并不显示所有的Column,选中某行的时候,在显示全部的项。
      

  6.   

    出现这个异常的原因正是因为上年12月29号那次微软发布的最后一次非正常更新程序引起的.在这次安全更新中对于asp.net单次的提交量做了一个最大量限制1000,出现这个异常正是因为页面提交量超过了1000这个限制.这个可以在web.config中更改:
    <appSettings>
    <add key="aspnet:MaxHttpCollectionKeys" value="5000" />
    </appSettings>
      

  7.   

    viewstate只不过是一个加密过的hidden 类型的input。input的value长度是有上限的,如果你把很多数据放在里面,当然会崩溃。
    你的设计真的很垃圾。
    撸主的基础知识需要恶补。
      

  8.   

    你最好去msdn上看下viewstate的机制,别太想当然了
      

  9.   

       为什么要把数据全部都取出来,是因为关联的表太多了吗? 
     你可以选择用datatable保存数据或者分页....
      

  10.   

    这个跟分页或者viewstate已经没有关系了..你想想 如果你打开一个html 里面有100W行代码 你认为客户端不会挂掉??打开一个100MB的记事本 你就知道了..
      

  11.   

    采用分页,分页不一定要用存储过程分页,你现在存储过程可以不改,然后用jqGrid,然后下一个handler文件,在里面进行数据的分页,jqGrid的数据源绑定这个文件即可。
      

  12.   

    你最好去msdn上看下viewstate的机制,别太想当然了
    http://www.cnblogs.com/yzxchoice/archive/2006/09/08/498499.html
    这篇文章写的不错,可以学习下
      

  13.   

    gridview若是太多数据的话 viewstate会很大. 这时候你gridview只是用来显示数据不需要回发后台操作的话,可以手动将gridview的viewstate关闭.不知道这样可以解决楼主的问题不
      

  14.   

    查询数据的时候就要分页了,页面宏大时,可以利用ajax请求
    你最好也不要使用gridview自带的分页,那个是内存分页
      

  15.   

    楼主你要减少数据库的访问可以把取出来的数据放在Cache里,ViewState会在页面来回传递时保存状态值,数据量太大了(默认超过4096K)在回传时IIS会拒绝访问的