Stackoverflow和其他网站上也有类似的问题,但我似乎错过了一些东西。
我有一个GridView绑定到DataTable,它来自数据库。我的目标是使用一个按钮来更新当前的一行,该按钮位于调用以下方法的同一行中。
protected void TestsToBeDone_RowUpdating(object sender, GridViewEditEventArgs e)
{
SqlConnection myConnection = getConnection();
myConnection.Open();
int index = Convert.ToInt32(e.NewEditIndex);
GridViewRow selectedRow = TestsToBeDone.Rows[index];
TableCell LABAVIDc = selectedRow.Cells[1];
int LABAVID = Convert.ToInt32(LABAVIDc.Text);
TableCell assistentc = selectedRow.Cells[5];
string query = "UPDATE Labaanvraag " +
"SET Status='4' "+
"WHERE LABAVID ='"+LABAVID+"'";
}
SqlCommand commandZ = new SqlCommand(query, myConnection);
commandZ.ExecuteNonQuery();
myConnection.Close();
SetPatientTestGrid(Session["PATID"], e);
}
这是从这里打来的:
<asp:GridView ID="TestsToBeDone" runat="server" EnableModelValidation="True" OnRowEditing="TestsToBeDone_RowUpdating">
<Columns>
<asp:ButtonField ButtonType="Button" CommandName="Update"
HeaderText="Afgenomen" ShowHeader="True" Text="Afgenomen" />
</Columns>
</asp:GridView>
在我第一次尝试时,我在后面的代码中使用了GridViewCommandEventArgs的OnRowCommand。
但它仍然会抛出相同的异常,尽管我已经阅读了几个将其更改为OnRowEditing并且GridViewEditEventArgs可以解决问题的网站。
提前致谢,
蒂姆A答案 0 :(得分:5)
ASP.NET中的GridView有一些内置命令 - Deleted
,Update
等。发生的事情是你的按钮的命令名为Update
,而Gridview正在劫持来自您并发送RowUpdating
事件而不是RowEditing
事件。将您的按钮命令名称更改为Edit
,并使用RowEditing
事件。
答案 1 :(得分:0)
如果您使用Row_Command
事件进行编辑,则不要使用按钮命令名称“更新”进行更新,使用“删除”进行删除。相反,分别使用Edit或UP和Del。