有没有办法将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也不会工作,因为你必须有一个按钮。
答案 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>