GridView''触发了未处理的事件RowUpdating。 asp.net背后的C#代码

时间:2012-10-22 17:24:06

标签: c# asp.net

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

2 个答案:

答案 0 :(得分:5)

ASP.NET中的GridView有一些内置命令 - DeletedUpdate等。发生的事情是你的按钮的命令名为Update,而Gridview正在劫持来自您并发送RowUpdating事件而不是RowEditing事件。将您的按钮命令名称更改为Edit,并使用RowEditing事件。

答案 1 :(得分:0)

如果您使用Row_Command事件进行编辑,则不要使用按钮命令名称“更新”进行更新,使用“删除”进行删除。相反,分别使用Edit或UP和Del。