使用datagrid分页,在各个页面中都需要用户进行一些选择或操作,然后再在最后一页进行总的提交.遇到的问题是,当用户做完了前一页的选择后,点击分页按钮进入下一页操作,当用户再返回前一页的时候发现刚才所做的操作已经不见了,只有空白的一页.所以用户提交的时候实际上只能提交最后一页的数据,而前面的操作都没有提交到数据库中.请问高手们有什么办法解决呢?总不能每填完一页便提交,然后再进入下一页进行操作吧.

解决方案 »

  1.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=F43AF9A5-2C2E-4AA6-E976-21E9569F5A8A跨页面实现多选
      

  2.   

    http://dotnet.aspx.cc/Exam/SelectMultiPages.aspx
      

  3.   

    只用通常的办法在postback后,datagrid就不记得你的操作了,需要另外写代码
    具体的方法可以参考孟子的那个跨页面实现多选的办法
      

  4.   

    这里有问题要向孟兄请教:
    1、对于重新显示所选择的项目代码有疑问(代码附下)
    看这段代码好像并没有使用循环来判断某个页面中的选择情况。那它是如何判断页面中所有的CHECKBOX是否被选中了呢?
    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    //重新显示所选择的项目
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    if(HdnSelectedValues.Value.IndexOf(((Literal)e.Item.Cells[1].FindControl("TitleShow")).Text) >= 0 )
    {
    HtmlInputCheckBox ChkSelected = (HtmlInputCheckBox)(e.Item.Cells[0].FindControl("ChkSelect"));
    ChkSelected.Checked = true;
    }
    }
    }
    2、页面中用来存储各个CHECKBOX的选择状态的是ID为:HdnSelectedValues的一个控件。有个问题是:当有多个用户打开这个网页的时候,前个用户的HdnSelectedValues中保存的信息会不会有被后一个用户修改的危险?如果不存在,那对于下面这种情况下呢?在页面中有个函数function A,在函数A中有一个变量X,在页面装载的时候会对变量赋值,并进行其他的操作。那么对于网络中的一个用户p1,在对变量X做了操作后,网络中的另一个用户p2打开了网页,对变量X也做了修改。那请问p2会不会对p1所做的修改产生影响?还是服务器分别为p1和p2创建了各自的变量X而可以做到各不相干呢?
      

  5.   

    1,判断:if(HdnSelectedValues.Value.IndexOf(((Literal)e.Item.Cells[1].FindControl("TitleShow")).Text) >= 0 )
    {
    HtmlInputCheckBox ChkSelected = (HtmlInputCheckBox)(e.Item.Cells[0].FindControl("ChkSelect"));
    ChkSelected.Checked = true;
    }2,不会
      

  6.   

    那看来我是不太明白
    if(HdnSelectedValues.Value.IndexOf(((Literal)e.Item.Cells[1].FindControl("TitleShow")).Text) >= 0 )这里的功能了能具体说说它是怎么实现循环的吗?