日期:2014-05-19  浏览次数:20542 次

DataGrid分页状态下删除问题
DataGrid分页状态下最后一页只有一个数据记录,当我行删除时,重新调用BindGrid()方法重新读取时,系统提示无效的   CurrentPageIndex   值。它必须大于等于   0   且小于   PageCount。
这样的问题如何解决,哪位高人帮小弟一把!

------解决方案--------------------
万无一失的删除操作
==========================
private void btn_del_Click(object sender, System.EventArgs e)
{
string sqlDel = " ";
int itemCount = 0;
foreach(DataGridItem dg in DataGrid1.Controls[0].Controls)
{
if(dg.ItemType == ListItemType.Item || dg.ItemType == ListItemType.AlternatingItem)
{
CheckBox chk_del = (CheckBox)dg.FindControl( "chk_del ");
if(chk_del.Checked)
{
sqlDel += ((Label)dg.FindControl( "lal_delId ")).Text.Trim()+ ", ";
itemCount ++;
}
}
}

sqlDel = sqlDel.Substring(0,sqlDel.Length-1);

//删除操作
db.ExecuteNoneSql( "delete fAssets_info where infoId in( " + sqlDel + ") ");

//CurrentPageIndex大于0 且 当前页记录数等于选中(checkbox)记录数是向前翻页
if(DataGrid1.CurrentPageIndex> 0 && DataGrid1.Items.Count == itemCount)
DataGrid1.CurrentPageIndex=DataGrid1.CurrentPageIndex-1;

bind();//绑定
}