现在我已经实现了在gridview分页时保存checkbox的状态,现在问题来了
              foreach (GridViewRow row in GridView1.Rows)
              {  
                if (((CheckBox)row.FindControl("chkSelected")).Checked)
                {
                    //这里我还是只能取得当前页的checkbox,其他页我选中的checkbox状态在,当我取不到.
                    //求一个可以判断gridview所有页的checkbox的方法 谢谢                }
              }

解决方案 »

  1.   

    check选中的时候将行数据保存在datatable的 row中。要操作选 中行的数据了
      

  2.   

    你是用什么方法保存checkbox状态的?你保存了你自己会取不到?
      

  3.   

    提供给你两种最简单的方法
    1.用ViewState存储 
    2暂时不允许分析,处理后再允许分页
      

  4.   

    翻页时把选中的checkbox用viewstate保存一下
      

  5.   

    如果你要的效果是翻页后状态可以保持,翻回来又可以还原,基本思路是
    1、绑定后隐藏一列键值。
    2、选中时,保存键值,同时要避免重复保存。
    3、页面呈现时根据选中键值还原checkbox的外观。一般考虑用户感受,上述行为应该基于脚本实现,记得codeproject Asp.net专栏置顶帖有一个印度老兄写的demo。
      

  6.   

    你写一个session['设置一个变量','第一页被选中的内容']
    当你点第二页的时候,保存第一页所选的内容,写一个返回Arraylist的函数 假如CBOX被选中那么Arraylist.add() 并返回,
    在写一个函数,没有返回类型的,用一个session[page.tosting(),'这里就写你arraylist的返回函数名'
    当你从第二页回到第一页的时候,页面被重新加载,这个时候就调用 session这个函数过程,page.tostring()这个可以自动判断当前选择的是第几页,
      

  7.   

    http://topic.csdn.net/u/20090306/12/bffb6547-d01e-47b9-8327-ca52dbcc3d33.html
    看一下上面帖子我的回复的内容,你的问题和他的问题思路是一样的,哪里我给写了两个方法。后面还有更正。你修改一下,能处理你的问题。
      

  8.   

       foreach (GridViewRow row in GridView1.Rows) 
                  {  
                    if (((CheckBox)row["行索引"].cell[列索引].FindControl("chkSelected")).Checked) 
                    { 
                      这样可以
                      } 
                  }