C# 在Codebehind中从Gridview中删除一行(是否获取异常?)
我试图手动从gridview中删除一行,因为出于某种原因,当我从数据库和databind中删除该项时,gridview仍然没有更新。以下是我正在使用的代码:C# 在Codebehind中从Gridview中删除一行(是否获取异常?),c#,asp.net,exception,data-binding,gridview,C#,Asp.net,Exception,Data Binding,Gridview,我试图手动从gridview中删除一行,因为出于某种原因,当我从数据库和databind中删除该项时,gridview仍然没有更新。以下是我正在使用的代码: try { gvCertifications.DeleteRow(int.Parse(commandArgs[1])); } catch (HttpException) { //error } 出于某种原因,我总是遇到HttpException?我已经尝试在我的数据绑定之前和之后放置这个命令(因为说当gridview未绑定
try
{
gvCertifications.DeleteRow(int.Parse(commandArgs[1]));
}
catch (HttpException)
{
//error
}
出于某种原因,我总是遇到HttpException?我已经尝试在我的数据绑定之前和之后放置这个命令(因为说当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 %>'
CommandArgument=''
如果使用sqldatasource
作为数据源(如中),则需要在其deletecommand
属性上编写删除查询。或者,如果将DataTabe
用作数据源
,则需要处理gridview的行删除事件。检查示例。虽然它不一定能回答我的问题,但它解决了我试图用它解决的问题:
问题:
“…由于某种原因,当我从数据库和数据绑定中删除该项时,gridview仍然没有更新…”
GridView设置了预定义的命令,例如“选择”、“编辑”和“删除”。当我尝试使用命令名“delete”定义自己要运行的事件时,程序将尝试在预定义事件旁边运行部分事件。这就是造成问题的原因。您提到的命令名是什么?您在哪个事件上编写了此代码?CommandName=“delete”
事件是gvCertifications\u RowCommand
ok.。然后,您是否在数据源的deletecommand
属性上编写了删除查询?我正在使用自定义命令,即GridView\u RowCommand(…){if(CommandName='delete'){…}