0

有没有一种方法可以将 RowClick 事件添加到 Gridview Rows 而无需为每个事件添加一个按钮?我希望能够单击行中的任意位置并引发 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 也不起作用,因为您必须有一个按钮。

4

1 回答 1

2

您执行了 2 中的第 1 步。第一部分是onclickRowDataBound. 现在您需要处理该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>
于 2012-10-16T15:34:26.510 回答