在编辑模式下从GridView获取复选框值有问题

本文关键字:获取 复选框 有问题 GridView 编辑 模式 | 更新日期: 2023-09-27 18:15:32

我试图在gridview中使用复选框,以更新我的数据库。一切似乎都工作完美,除了在编辑模式下从复选框中获得正确的值。

以下是相关的aspx代码:
<asp:TemplateField HeaderText="Unlock" SortExpression="Unlock">
    <EditItemTemplate>
        <asp:CheckBox ID="chkEditUnlock" runat="server" Checked='<%# Convert.ToBoolean(Eval("Unlock")) %>' />
    </EditItemTemplate>
    <ItemTemplate>
        <asp:CheckBox ID="chkUnlock" runat="server" Enabled="false" Checked='<%# Convert.ToBoolean(Eval("Unlock")) %>' />
    </ItemTemplate>
</asp:TemplateField>
<asp:CheckBoxField HeaderText="Reset" SortExpression="Reset" DataField="Reset" InsertVisible="false" ReadOnly="false" />

我正在使用内置的CheckBoxField和TemplateField,希望其中一个可以工作,但也没有。我只从复选框中获得原始值。例如,如果复选框被选中,我在编辑模式下取消选中,然后按更新,代码读取它仍然被选中。

这是gridview的RowUpdating Event

protected void grdManageActionGroups_RowUpdating(object sender, GridViewUpdateEventArgs e)
{           
    Label lblTargetGroupEdit = (Label)grdManageActionGroups.Rows[e.RowIndex].FindControl("lblTargetGroupEdit");
    CheckBox chkEditUnlock = ((CheckBox)grdManageActionGroups.Rows[e.RowIndex].FindControl("chkEditUnlock"));
    database.UpdateTargetGroup(ddlActionGroups.SelectedValue, lblTargetGroupEdit.Text, chkEditUnlock.Checked, (grdManageActionGroups.Rows[e.RowIndex].Cells[2].Controls[0] as CheckBox).Checked);
    FillTargetGroupsInGrid();
}

在编辑模式下从GridView获取复选框值有问题

找到问题了,

我需要添加

if(!isPostBack)
{
    FillTargetGroupsInGrid();
}

到GridView的load事件