在编辑模式下从GridView获取Checkbox值时遇到问题

时间:2014-07-29 16:20:48

标签: c# asp.net gridview checkbox

我试图在gridview中使用Checkbox来更新我的数据库。除了在编辑模式下从Checkbox中获取正确的值之外,所有内容似乎都运行正常。

以下是相关的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事件。

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();
}

我非常感谢你能给予的任何帮助。

1 个答案:

答案 0 :(得分:1)

发现问题,

我需要添加

if(!isPostBack)
{
    FillTargetGroupsInGrid();
}

到GridView的加载事件