0

GridViewに[コマンドの削除]ボタンを追加しましたが、ボタンを選択するたびに次のエラーが発生します。

  • [HttpException(0x80004005):GridView'GridView1'は、処理されなかったイベントRowDeletingを発生させました。]
  • System.Web.UI.WebControls.GridView.OnRowDeleting(GridViewDeleteEventArgs e)+1463321

しかし、使用する必要のあるイベントと、削除および編集するものがわかりません。コードは次のとおりです。

            <asp:TemplateField HeaderText="">
                 <ItemTemplate>
                   <asp:Button ID="lkDelte" runat="server" OnClientClick="return confirm('Are you sure you want to delete?')"
                                CommandName="Delete" CommandArgument='<%# ((GridViewRow) Container).RowIndex %>'></asp:Button>
                   </ItemTemplate>
            </asp:TemplateField>






protected void gdCourse_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "Delete")
    {
        int index = Convert.ToInt32(e.CommandArgument);

        GridViewRow row = GridView1.Rows[index];

        string con_str = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
        SqlConnection con = new SqlConnection(con_str);

        SqlCommand com = new SqlCommand("dbo.delete_documents", con);
        com.CommandType = CommandType.StoredProcedure;
        SqlParameter pDocument_ID = new SqlParameter("@document_id", row);

        com.Parameters.Add(pDocument_ID);

        con.Open();
        com.ExecuteNonQuery();
        con.Close();

    }
    else
    {
        Label2.Text = "Unable to delete";
    }
}  
4

1 に答える 1

1

コードに問題はありませんがRowDeleting、グリッドビューのイベントを処理するのを忘れていました。

gridviewRowDeletingメソッドを処理する必要があります。

protected void gvLineItems_RowDeleting(object sender, GridViewDeleteEventArgs e)

この場合、このメソッドで再バインドするか、メソッドを空のままにして、イベントが正しく発生するように署名を追加することができます。

これをプログラムに追加します。

protected void NameOfYourGridView_RowDeleting(object sender, GridViewDeleteEventArgs e)
 {
  //bind your grid view here...
 }
于 2012-10-23T14:57:16.323 に答える