【问题标题】:Why checkbox is not maintaining it's value?为什么复选框不保持其价值?
【发布时间】:2016-03-19 14:29:27
【问题描述】:

我遇到了一个有趣的问题。

我在 gridview 中有一个复选框(在 MODAL 中)。在 CLosingModal 事件中,我正在获取 Checkbox,但它显示 FALSE,即使我选中了 True。

为什么?

<asp:TemplateField HeaderText="Conveyed ?">
  <ItemTemplate>
      <asp:CheckBox ID="chkBoxIsConveyed" runat="server" Checked='<%# Convert.ToBoolean(Eval("IsConveyed")) %>' />
         </ItemTemplate>
</asp:TemplateField>

.cs

protected void btnCloseModal_Click(object sender, EventArgs e)
    {
        mdlLastHearingDates.Hide();

        UpdateIsConveyed();

    }

public void UpdateIsConveyed() 
    {
        foreach (GridViewRow r in grdViewLastHearingDates.Rows)
        {
            int CaseHearingID = Convert.ToInt32(r.Cells[0].Text);
            CheckBox chkBox = r.FindControl("chkBoxIsConveyed") as CheckBox;

            MngCaseHearings.UpdateCasesIsConveyed(CaseHearingID, chkBox.Checked);
        }
    }

我调试了,它调用了函数。

【问题讨论】:

  • 尝试反向操作。首先更新您的数据,然后隐藏模式。
  • 好的,先生,我正在尝试
  • 对不起先生,但运气不好:/
  • 尝试 Bind 而不是 eval。对于 2 路数据绑定,您需要使用 Bind。
  • @NitinAlapati 不工作

标签: c# asp.net c#-4.0 gridview webforms


【解决方案1】:

尝试将 AutoPostBack 值设置为 true,我相信当您选中复选框时它不会触发更新模型的事件。更多信息,您可以参考https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkbox.autopostback(v=vs.110).aspx

【讨论】:

  • 不,这不是真的,它确实会触发事件并仔细阅读我的问题
  • 我猜你的意思是UpdateIsConveyed()?但这不是我想说的,我的意思是复选框选中事件。好吧,让我进一步解释。您将值绑定到 UI(客户端脚本),并且您想从代码隐藏(服务器端脚本)获取更新的值,然后您需要在执行选中复选框操作时将值发布回服务器,因此,您需要将 AutoPostBack 属性添加到您的复选框并将其设置为 true。
猜你喜欢
  • 2018-12-31
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
  • 2016-06-28
  • 2020-10-13
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
相关资源
最近更新 更多