1

Stackoverflowや他のウェブサイトにも同様の質問がありますが、私は何かを見逃しているようです。

データベースから取得したDataTableにGridViewをバインドしています。私の目標は、次のメソッドを呼び出す同じ行にあるボタンを使用して、一度に1行ずつ更新することです。

        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

4

2 に答える 2

5

ASP.NETのGridViewには、いくつかの組み込みコマンド(Deleted、、Updateなど)があります。何が起こっているのかというと、ボタンのコマンド名はUpdate、であり、Gridviewはそれを乗っ取って、RowUpdatingイベントの代わりにイベントを発生させますRowEditing。ボタンのコマンド名をに変更しEdit、イベントを使用しRowEditingます。

于 2012-10-22T17:27:20.117 に答える
0

イベントを使用しRow_Commandて編集する場合は、ボタンコマンド名「更新」を「更新」に、「削除」を「削除」に使用しないでください。代わりに、それぞれEditまたはUPとDelを使用してください。

于 2013-05-26T16:08:52.900 に答える