1

プログラムで作成したグリッドにボタンがあります。ボタンは、ボタンがあるグリッドの非表示列のデータを使用して、テーブルの一部のデータを編集します。通常、ボタンの javascript onclientclick を使用して非表示フィールドに行データを送信し、その非表示フィールドを使用してデータベースに変更を加えます。ただし、ボタンの addhandler にパラメーターを送信する方法が必要です。これは私が明確にしなければならないコードです....

Dim btnedit As New ImageButton
    AddHandler btnedit.Click, AddressOf btnedit_Click
    btnedit.ImageUrl = "\images\bttnEditMini.gif"

If e.Row.RowType <> DataControlRowType.Header And e.Row.RowType <> DataControlRowType.Footer Then
        e.Row.Cells(3).Controls.Add(btnedit)
End If

ここに私の Addhandler とそのデリゲートがあります:

Public Delegate Sub ImageClickEventHandler(ByVal sender As Object, ByVal e As ImageClickEventArgs)
Sub btnedit_Click(ByVal sender As Object, ByVal e As ImageClickEventArgs)
//programming stuff
End Sub

このハンドラーにパラメーターを送信するにはどうすればよいですか?

4

4 に答える 4

3

慣例により、すべてのイベント ハンドラーは、sender と EventArgs の 2 つのパラメーターを受け入れます。カスタム情報をリスナーに送信する必要がある場合は、EventArgs から継承し、通信する必要がある情報を含む新しいクラスを作成します。

これを行う方法を示すCodeProject のこの記事を確認してください。

于 2009-06-02T18:52:08.207 に答える
1

短い答え:いいえ。どこに送りますか?2 つのパラメーターがあります。

より長い答え:送信者は、イベントを送信したコントロールです。この場合、それは btnEdit コントロールになります。多分それはあなたを助けるでしょう。

于 2009-06-02T18:09:16.740 に答える
0

グリッド内にあったので、代わりにrowコマンドを使用しました。また、Rowコマンドを使用すると、コマンド名とコマンド引数を送信できます。パラメータを引数として渡しました。

 GridView1.Rows(i).Cells(3).Controls.Add(btndel)
            btndel.ImageUrl = "\images\bttnDelete.gif"
            btndel.ToolTip = "This will delete the Selected Assignment"
            btndel.CommandName = "destroy"
            btndel.CommandArgument = GridView1.Rows(i).Cells(0).Text
            btndel.Attributes.Add("onclick", "javascript: if(confirm('Are you sure you want to delete this Department Cost Days Assignment?')==false) return false;")

これがrowcommandです:

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
    If e.CommandName = "destroy" Then 'used destroy because Delete command was prohibited.
       Call Connection()
        Dbcmd.CommandText = "Delete from table where condition = '" & e.CommandArgument & "'"
        Dbcmd.ExecuteNonQuery()
        Dbconn.Close()
        Dbconn.Dispose()
    End If
于 2009-06-02T21:17:42.017 に答える
0

「デフォルト」または定義済みのパラメータを使用したくない場合は、独自のイベントを作成できます。

于 2009-06-03T18:15:46.357 に答える