好的我正在使用带复选框的列,以便能够从GridView中选择我的数据行。但OnCheckChanged事件不会触发。我已经尝试阅读文章,使其工作和完全复制代码,它只是不会触发。我正在使用vb.net和asp.net
<asp:GridView ID="locationDetailGrid" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate >
<asp:CheckBox ID="locationSelection" AutoPostBack="true"
runat="server" OnCheckedChanged="CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Protected Sub CheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim checkbox As CheckBox = DirectCast(sender, CheckBox)
Dim row As GridViewRow = DirectCast(checkbox.NamingContainer, GridViewRow)
Response.Write(row.Cells(0).Text)
End Sub
答案 0 :(得分:4)
可能是因为你在回发上也在对GridView进行数据绑定。在GridView的数据绑定内容中向Page_Load添加If Not Page.IsPostback
。
如果在回发时重新绑定GridView,则会阻止事件触发。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
BindGridToDataSourceAndDataBind()
End If
End Sub