从Code Behind中的Gridview中删除一行(获取异常?)

时间:2011-07-07 15:16:21

标签: c# asp.net exception data-binding gridview

我正在尝试从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 %>'

2 个答案:

答案 0 :(得分:0)

如果您使用sqldatasource作为数据源(如MSDN Example)那么,您需要在其deletecommand属性上编写删除查询。或者,如果您使用DataTabe作为DataSource,那么您需要处理gridview的RowDeleting事件。检查this link是否有样本。

答案 1 :(得分:0)

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

  

来自问题:

     

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

Gridviews具有预定义的命令设置,例如“选择”,“编辑”和“删除”。当我尝试使用命令名称“delete”来定义我自己的事件时,程序将尝试运行我的事件的一部分以及它的预定义事件。这就是造成问题的原因。