有分页引发的问题。 原因你是每换页时就重新绑定数据,所以你应该在换页之前拿到你已经选择的内容或记录,然后放到Session里 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void SaveData() { customerDS = (CustomerDataset)Session["Hoten.Boss.CustInfoSys.Web.custinfo.serviceinfo.customerDS"]; int i; for (i = dgUserSP.CurrentPageIndex * dgUserSP.PageSize; i < (dgUserSP.CurrentPageIndex+1) * dgUserSP.PageSize && i < customerDS.USERS.Count; i++) { DataGridItem rowItem = dgUserSP.Items[i%dgUserSP.PageSize]; string userID = customerDS.USERS[i].USER_ID; DataList dataList = (DataList)rowItem.FindControl("DataList1"); foreach (DataListItem colItem in dataList.Items) { string spID=customerDS.SP[colItem.ItemIndex].SP_ID; CheckBox check=(CheckBox)colItem.FindControl("CheckBox2"); // if((check.Checked) && (check.ForeColor==Color.Black)) { customerDS.USER_SP.AddUSER_SPRow(userID, spID); } // if((check.Checked==false) && (check.ForeColor==Color.Red)) { customerDS.USER_SP.FindByUSER_IDSP_ID(userID, spID).Delete(); } } } }==================================================================================private void BindGrid() { //从Session中得到customerDS customerDS = (CustomerDataset)Session["Hoten.Boss.CustInfoSys.Web.custinfo.serviceinfo.customerDS"]; dgUserSP.DataBind(); int i; for (i = dgUserSP.CurrentPageIndex * dgUserSP.PageSize; i < (dgUserSP.CurrentPageIndex+1) * dgUserSP.PageSize && i < customerDS.USERS.Count; i++) { DataGridItem rowItem = dgUserSP.Items[i%dgUserSP.PageSize]; string userID = customerDS.USERS[i].USER_ID; DataList dataList = (DataList)rowItem.FindControl("DataList1"); foreach (DataListItem colItem in dataList.Items) { string spID = customerDS.SP[colItem.ItemIndex].SP_ID; CheckBox check = (CheckBox)colItem.FindControl("CheckBox2"); //如果使用此SP,置相应checked为true,forecolor为red check.Checked = customerDS.USER_SP.FindByUSER_IDSP_ID(userID, spID) != null; check.ForeColor = customerDS.USER_SP.FindByUSER_IDSP_ID(userID, spID) != null? Color.Red : Color.Black; } } }==============================================================================private void dgUserSP_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { SaveData(); dgUserSP.CurrentPageIndex=e.NewPageIndex; BindGrid(); }//你参考一下这个例子,就是把选定的项保存到DataSet中,需要的时候更新就行了! 这个的确没有什么太好的方法如果数据量不是很大的话就不要分页了,呵呵非要分页的话可以考虑把选中的行的主键存在hashtable中然后换页的时候读取hashtable timer控件 如何用linkbutton移除datalist中的一项??我是新手 Excel转换成html的相关问题 超级无敌简单问题,要分的快来吧! MSXML 6.0 分析器错误导致vs.net2005安装失败 datagrid的添加行问题 access模糊查询问题~~~!! 问一个重写DataGrid的问题 怎么使dataGrid里删除列变为不可用,但要可见! import system.data.sql时报找不到sql命名空间的错误 label的ToolTip该怎么用 datagrid控件的超级链接???
{
customerDS = (CustomerDataset)Session["Hoten.Boss.CustInfoSys.Web.custinfo.serviceinfo.customerDS"];
int i;
for (i = dgUserSP.CurrentPageIndex * dgUserSP.PageSize;
i < (dgUserSP.CurrentPageIndex+1) * dgUserSP.PageSize && i < customerDS.USERS.Count;
i++)
{
DataGridItem rowItem = dgUserSP.Items[i%dgUserSP.PageSize];
string userID = customerDS.USERS[i].USER_ID;
DataList dataList = (DataList)rowItem.FindControl("DataList1");
foreach (DataListItem colItem in dataList.Items)
{
string spID=customerDS.SP[colItem.ItemIndex].SP_ID;
CheckBox check=(CheckBox)colItem.FindControl("CheckBox2");
//
if((check.Checked) && (check.ForeColor==Color.Black))
{
customerDS.USER_SP.AddUSER_SPRow(userID, spID);
}
//
if((check.Checked==false) && (check.ForeColor==Color.Red))
{
customerDS.USER_SP.FindByUSER_IDSP_ID(userID, spID).Delete();
}
}
}
}==================================================================================
private void BindGrid()
{
//从Session中得到customerDS
customerDS = (CustomerDataset)Session["Hoten.Boss.CustInfoSys.Web.custinfo.serviceinfo.customerDS"];
dgUserSP.DataBind();
int i;
for (i = dgUserSP.CurrentPageIndex * dgUserSP.PageSize;
i < (dgUserSP.CurrentPageIndex+1) * dgUserSP.PageSize && i < customerDS.USERS.Count;
i++)
{
DataGridItem rowItem = dgUserSP.Items[i%dgUserSP.PageSize];
string userID = customerDS.USERS[i].USER_ID;
DataList dataList = (DataList)rowItem.FindControl("DataList1");
foreach (DataListItem colItem in dataList.Items)
{
string spID = customerDS.SP[colItem.ItemIndex].SP_ID;
CheckBox check = (CheckBox)colItem.FindControl("CheckBox2");
//如果使用此SP,置相应checked为true,forecolor为red
check.Checked = customerDS.USER_SP.FindByUSER_IDSP_ID(userID, spID) != null;
check.ForeColor = customerDS.USER_SP.FindByUSER_IDSP_ID(userID, spID) != null? Color.Red : Color.Black;
}
}
}
==============================================================================
private void dgUserSP_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
SaveData();
dgUserSP.CurrentPageIndex=e.NewPageIndex;
BindGrid();
}
//你参考一下这个例子,就是把选定的项保存到DataSet中,需要的时候更新就行了!
如果数据量不是很大的话就不要分页了,呵呵
非要分页的话可以考虑把选中的行的主键存在hashtable中
然后换页的时候读取hashtable