我是这么做的,下面是分页事件
protected void gvSC_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
ArrayList selectedList = new ArrayList();
int index = -1;
for (int i = 0; i < gvSC.Rows.Count; i++)
{
CheckBox chkAdd = (CheckBox)gvSC.Rows[i].FindControl("chkAdd");
index = (int)gvSC.DataKeys[gvSC.Rows[i].RowIndex].Value;
if (Session["CHKADD"] != null)
selectedList=(ArrayList)Session["CHKADD"];
if (chkAdd.Checked)
{
if (!selectedList.Contains(index))
selectedList.Add(index);
}
else
selectedList.Remove(index);
}
if (selectedList != null && selectedList.Count > 0)
{
Session["CHKADD"] = selectedList;
}
gvSC.PageIndex = e.NewPageIndex;
gvSC.DataBind();
selectedList = (ArrayList)Session["CHKADD"];
if (selectedList != null && selectedList.Count > 0)
{
foreach (GridViewRow row in gvSC.Rows)
{
index = (int)gvSC.DataKeys[row.RowIndex].Value;
if (selectedList.Contains(index))
{
CheckBox myChkAdd = (CheckBox)row.FindControl("chkAdd");
myChkAdd.Checked = true;
}
}
}
}
调试过,是按照预想的流程下去的,但是尽管运行到了
CheckBox myChkAdd = (CheckBox)row.FindControl("chkAdd");
myChkAdd.Checked = true;
但是回到页面上gridview中的checkbox也没有变成已选择,这是为什么
protected void gvSC_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
ArrayList selectedList = new ArrayList();
int index = -1;
for (int i = 0; i < gvSC.Rows.Count; i++)
{
CheckBox chkAdd = (CheckBox)gvSC.Rows[i].FindControl("chkAdd");
index = (int)gvSC.DataKeys[gvSC.Rows[i].RowIndex].Value;
if (Session["CHKADD"] != null)
selectedList=(ArrayList)Session["CHKADD"];
if (chkAdd.Checked)
{
if (!selectedList.Contains(index))
selectedList.Add(index);
}
else
selectedList.Remove(index);
}
if (selectedList != null && selectedList.Count > 0)
{
Session["CHKADD"] = selectedList;
}
gvSC.PageIndex = e.NewPageIndex;
gvSC.DataBind();
selectedList = (ArrayList)Session["CHKADD"];
if (selectedList != null && selectedList.Count > 0)
{
foreach (GridViewRow row in gvSC.Rows)
{
index = (int)gvSC.DataKeys[row.RowIndex].Value;
if (selectedList.Contains(index))
{
CheckBox myChkAdd = (CheckBox)row.FindControl("chkAdd");
myChkAdd.Checked = true;
}
}
}
}
调试过,是按照预想的流程下去的,但是尽管运行到了
CheckBox myChkAdd = (CheckBox)row.FindControl("chkAdd");
myChkAdd.Checked = true;
但是回到页面上gridview中的checkbox也没有变成已选择,这是为什么
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货