从Gridview中的Codebehind中删除一行(获得异常?)

本文关键字:一行 异常 中的 Gridview Codebehind 删除 | 更新日期: 2023-09-27 18:01:23

我试图从我的gridview手动删除一行,因为出于某种原因,当我从数据库和数据绑定中删除项目时,gridview仍然没有更新。下面是我使用的代码:

try
{
    gvCertifications.DeleteRow(int.Parse(commandArgs[1]));
}
catch (HttpException)
{
    //error
}

,出于某种原因,我总是击中HttpException?我试过在之前放置这个命令,在我的DataBind之后(因为MSDN说,当gridview不绑定到数据源时,HttpException会发生)

gridview在加载时已经绑定到数据源,所以我不知道为什么我会得到这个异常…

另外,如果它有帮助,这里是我如何得到commandArgs[]:

String[] commandArgs = e.CommandArgument.ToString().Split('|'); //before in same function as the try/catch block

,下面是.aspx文件中的命令:

CommandArgument='<%#Eval("ThisId") + "|" + Container.DataItemIndex %>'

从Gridview中的Codebehind中删除一行(获得异常?)

如果您使用sqldatasource作为数据源(如MSDN示例),那么您需要对其deletecommand属性编写删除查询。或者如果您使用DataTabe作为DataSource,那么您需要处理gridview的RowDeleting事件。查看此链接查看示例

虽然它不一定回答我的问题,但它解决了我试图破解的问题:

从问题:

"…由于某种原因,当我从数据库和数据绑定中删除项目时,gridview仍然没有更新…"

Gridviews设置了预定义的命令,例如'select', 'edit'和'delete'。当我尝试用命令名"delete"定义我自己的事件时,程序将尝试运行我的事件的一部分,以及它预定义的事件。