我想删除datagrid分页后的除了第一页的数据。可是每次删的时候删除的却总是第一页的那一行。比如:删第3页的第2行,删除的结果却是把第1页的第2行给删了。
下面是我用过的代码,但是都不对,请各位帮帮忙~~~谢谢了!我试过两种提取当前数据,通过他查询后再删除当前行
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ string str = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
string id=da.getName("select cNumber from classInfo where classNumber='"+str+"'");
string strSQL = "delete from selectCourse where cNumber='"+id+"'and sNumber='"+Session["name"]+"'";
if(da.delSql(strSQL))
{
//判断索引
if( DataGrid1.Items.Count == 1 && DataGrid1.CurrentPageIndex > 0 )
{
DataGrid1.CurrentPageIndex--;
}
this.Response.Redirect("Right.aspx");
int selectNum=Convert.ToInt32(da.getName("select selectNumber from classInfo where classNumber='"+str+"'"));
selectNum=selectNum-1;
da.updata("update classInfo set selectNumber ='"+selectNum.ToString()+"'where                    classNumber='"+str+"'");
}
else
this.Response.Redirect("Wrong.aspx");
}这个是在datagrid的默认事件里做的。下面是在itemcommand事件里做的。而且提取虚拟主键的方法都不一样
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="Delete")
{
//string str = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
        string str=e.Item.Cells[0].Text;
string id=da.getName("select cNumber from classInfo where classNumber='"+str+"'");
string strSQL = "delete from selectCourse where cNumber='"+id+"'and sNumber='"+Session["name"]+"'";
if(da.delSql(strSQL))
{

this.Response.Redirect("Right.aspx");

                       int selectNum=Convert.ToInt32(da.getName("select selectNumber from classInfo whereclassNumber='"+str+"'"));
selectNum=selectNum-1;

                         da.updata("update classInfo set selectNumber ='"+selectNum.ToString()+"'where classNumber='"+str+"'"); }
else
this.Response.Redirect("Wrong.aspx");
}
}