添加行单击事件到Asp.Net GridView行

时间:2012-10-16 15:24:40

标签: asp.net web-applications

有没有办法将RowClick事件添加到Gridview行而不向每个行添加按钮?我希望能够单击行中的任何位置并引发SelectedIndexChanged事件。

我尝试了以下但我需要添加页面enableEventValidation =“true”,我真的不想这样做。

Private Sub GridView1_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
    Try
        Select Case e.Row.RowType
            Case DataControlRowType.DataRow
                e.Row.Attributes.Add("onclick", Page.ClientScript.GetPostBackClientHyperlink(GridView1, "Select$" & e.Row.RowIndex))
        End Select
    Catch ex As Exception

    End Try
End Sub

RowCommands也不会工作,因为你必须有一个按钮。

1 个答案:

答案 0 :(得分:1)

您执行了第2步。第一部分是在onclick中注册RowDataBound。现在您需要处理SelectedIndexChanged事件。我不是VB.Net的人,所以我不是100%肯定如何连接它。但事件处理程序将如下所示:

Private Sub GridView1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles GridView1.SelectedIndexChanged
    ' Do stuff here.
End Sub

另外,更改您的onclick电汇代码以使用Page.ClientScript.GetPostBackEventReference代替Page.ClientScript.GetPostBackClientHyperlink

以下是一些示例标记:

<asp:GridView ID="GridView1"
    runat="server"
    Width="665px"
    OnSelectedIndexChanged="GridView1_SelectedIndexChanged">

    <HeaderStyle BackColor="#0033CC" />

    <Columns>
        <asp:CommandField ShowSelectButton="True" />
    </Columns>

</asp:GridView>