将参数发送到addhandler?

时间:2009-06-02 17:57:40

标签: asp.net vb.net delegates addhandler

我在网格中有一个按编程方式创建的按钮。该按钮使用按钮所在网格的隐藏列中的数据编辑表格中的某些数据。通常,我使用按钮的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 个答案:

答案 0 :(得分:3)

按照惯例,所有事件处理程序都接受两个参数:sender和EventArgs。如果需要向侦听器发送自定义信息,请创建一个继承自EventArgs的新类,并包含通信所需的信息。

查看this article on CodeProject,了解如何执行此操作。

答案 1 :(得分:1)

简答:不。你会把它寄到哪里?你有两个参数。

更长的答案:发件人是发送事件的控件。在这种情况下,它将是你的btnEdit控件。也许这会对你有帮助。

答案 2 :(得分: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

答案 3 :(得分:0)

如果您不想使用'default'/已定义的参数,您可以创建自己的事件。