datagrid中每行前面都有一个checkbox,由于数据较多需要采用分页操作,在每页都选中
若干项,如何在提交整个页面时将全部选中项的内容都提交.前面几页选种项的值该如何保存?
用session?arraylist?...

解决方案 »

  1.   

    在页面加一hidden控件,用来保存选中项的值
    详见:
    http://dotnet.aspx.cc/article/f43af9a5-2c2e-4aa6-e976-21e9569f5a8a/read.aspx
      

  2.   

    ASPX:
    <script language="JAVASCRIPT">
    function AddRemoveValues(oChk) { 
    //在处理这个地方需要注意的是:你保存的值应该具有唯一性,这样才能不会替换错误的项。
    if(oChk.checked)
    SelectMultiPage.HdnSelectedValues.value += "," + oChk.value; 
    else
    SelectMultiPage.HdnSelectedValues.value = SelectMultiPage.HdnSelectedValues.value.replace("," + oChk.value,""); 
    }
    </script>
    CS:
    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;
    }
    }
    }