Флажок в TemplateField ItemTmplate событие не будет срабатывать - PullRequest
1 голос
/ 02 марта 2012

Хорошо. Я использую столбец с флажком, чтобы иметь возможность выбрать строку данных в 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 Ответ

4 голосов
/ 02 марта 2012

Возможно, потому что вы привязываете данные к GridView также на обратных передачах. Добавьте If Not Page.IsPostback в Page_Load вокруг ваших привязок к данным в GridView.

Если вы перепривязываете 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...