无法在回发时访问gridview中的复选框值

时间:2013-07-30 03:29:27

标签: asp.net gridview checkbox

这听起来很像这里的一堆其他问题,但我读过的内容并没有按照我所看到的内容进行。

我有一个gridview,其中包含许多绑定字段和一些包含复选框的模板字段。 gridview绑定到pageload上的自定义数据源(在“not page.ispostback()”条件内)。用户可以选中复选框以指定在单击链接按钮时提交的某些操作。

链接按钮的点击事件中包含以下代码:

For Each row As GridViewRow In UnpaidEntriesGridView.Rows
    Dim paidCheckbox As CheckBox = CType(row.FindControl("PaidCheckbox"), CheckBox)
    If paidCheckbox.Checked Then
        // perform database action
    End If
Next
Initialise() // (this rebinds the gridview)

无论我做什么,我都无法获得用户更改的gridview中任何复选框的选中值。所有复选框保持原始状态(在数据绑定上设置)。

这很可能是一个页面生命周期问题,但对于我的生活,我无法弄清楚为什么用户的更改在回发后不会保留,尽管gridview不会反弹直到在我检查之后。

ViewState已启用,否则一切都非常标准。

来自ascx的Gridview代码片段如下:

<asp:GridView ID="UnpaidEntriesGridView" runat="server" AutoGenerateColumns="false" EnableViewState="true">
    <Columns>
        <asp:BoundField HeaderText="Entry Name" DataField="EntryName" />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="PaidCheckbox" runat="server" EnableViewState="true" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:LinkButton ID="UnpaidEntriesSaveLinkButton" runat="server" Text="Commit Changes" />

任何帮助(即使是如此愚蠢的一记耳光)都会受到大力赞赏。

0 个答案:

没有答案