页面上有一个gridview, 绑定了一个有100行的datatable做数据源
gridview每页显示10行,在gridview上可以对数据进行修改,为了保存用户修改的内容,我把数据源的datatable
放到session中。
这样就出现了问题,一共10页,在换页的时候,页面的请求速度越来越慢,应该怎么办呢?

解决方案 »

  1.   

    你为什么要放到session 里面呢!?session 本来就是个很耗资源的 东西
       
      

  2.   

    把datatable放到session中……理所当然会变慢的……你分页的时候重新查询数据库啊……
      

  3.   

    一般这种这种情况 建议使用 ViewState 
      

  4.   

    分页最好用多少取多少,用自带的分页以后你会发现更慢。。
    而且整整100行DataTable放SESSION里不太好
      

  5.   

    是的,換下一頁的時候重新撈取數據都比放session強!
      

  6.   

    100行全存到session了?我以为只存一行
      

  7.   

    放在session里面当然越来越慢了。而且是一个100行的数据源。不要轻易的把数据放在Session里面,这样会增加服务器负担。Session一般是用来存储购物车的信息,或者是用户登陆之后的信息。
      

  8.   

    晕  想提高效率就别把所有的都查出来!你用个分页存储过程  每次只取10条 那样速度就快点撒!其次你在修改的时候不需要存到session里啊!
      

  9.   

    Session适合存储少量的数据。数据量大速度自然就会慢了。。
      

  10.   

    100行放session如果客户端多的话性能是个很大的问题,楼主的问题用viewstate或隐藏控件都可以实现
      

  11.   

    我是搂主:
    用viewstate我式过了,更不理想。
    能不能利用sessionID,然后将datatable放入Dictionary中呢,不知道是否可行
      

  12.   


      分页最好是用多少取多少  如果你非要这么做,用 GridView 自带的分页就ok了,不需要什么session ,viewstate 的
      

  13.   

    我剛剛測試了一下,我分了20頁,每頁10條記錄,頁面請求很快,用的是gridview自帶的分頁。
    如果樓主你的很慢的話,我覺得還是你自己的語句可能有點問題。要不你貼出來看看吧?
      

  14.   

    我是楼主:
    单纯的取得数据、显示数据的话不会慢的,关键是要记住用户的操作,
    如果再返回某个页面的时候要显示出用户之前的更改
    所以用了session保存数据源
      

  15.   


    支持还是建议不用GridView  自带的分页;
      

  16.   

     LZ 建议不要用Session 存储DataTable,可使用ViewState 分页不要一次性读取所有的记录,需要多少读取多少,如果全部读取,数据量大的话对速度影响很大
      

  17.   

    O,原來這回事,那考慮用session還是可以的,不過session對少量數據的暫存效果不錯,
    稍微大一些,就很吃資源的。你先弄,我再研究研究。
      

  18.   

    我是新来的哦!大家好1
    我来发表我的挫建:datatable是在加载内存中的一张表,如果表的内容比较的,则会处理的非常慢,
    建议你用LIST泛型
      

  19.   

    别这样做,用存储过程分页比在session中快,假如有100页的数据你也都放到session中?
      

  20.   

    session一般只适合放小数据量的变量 帐户 密码 状态等.你用来放dataset,那只能越来越慢啊.
      

  21.   

    放到SESSION里面,不慢就怪了,为什么不用缓存呢?