TemplateField ItemTmplate事件中的复选框不会触发

时间:2012-03-01 21:22:10

标签: asp.net vb.net checkbox

好的我正在使用带复选框的列,以便能够从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

1 个答案:

答案 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
相关问题