【问题标题】:radio button loses value on postback单选按钮在回发时失去价值
【发布时间】:2016-07-25 18:38:45
【问题描述】:

您好,我有一组用于“是”和“否”值的单选按钮,它们的名称为“选择”。默认情况下选中“是”。它们都是 runat="server"。我在回发中阅读了如下选择。只要验证不失败,它就可以正常工作。例如,如果我选择“否”并且回发时验证失败,我仍然会看到“否”被选中。但是,如果我在更正所有内容后提交表单,则在服务器端读取的值是“是”!这是 .net 中的错误吗?如果是,我该如何解决?

foreach (string key in Request.Form.AllKeys)
{
    if (key.EndsWith("choice"))
        return Request.Form[key] == "yes";
}

【问题讨论】:

  • aspx 页面是否启用了“EnableViewState”?我曾经遇到过类似的问题,控件在表单上显示一件事,但提交的数据完全不同。当我将 EnableViewState 设置为 true 时,它​​已修复。
  • 是的,视图状态已启用。这就是表单仍然保留回发之前选择的值的方式。因此,如果我在回发之前选择了“否”,重新渲染的页面仍然显示“否”被选中。但是,如果我在此之后提交,则读回的值为“是”
  • 明白。在我的例子中,我在我的控件上启用了 ViewState,但没有在页面上启用,所以它也会跟踪回发的更新,但页面本身显然并不关心,所以结果有时会变得非常不寻常。抱歉,我帮不上什么忙了。
  • 好吧,这很奇怪。我添加 enableviewstate="true" 只是为了它,它工作!然后我删除了它,它现在仍然有效!见鬼!
  • 如果您发出 EnableViewState="false" 而不是仅仅删除 EnableViewState,它是否会被复制?

标签: c# asp.net postback radio-button


【解决方案1】:

这是我在更深层次禁用视图状态的问题。

【讨论】:

    【解决方案2】:

    如果您正在对 RadioButton 或其祖先控件之一进行数据绑定,请确保在设置初始值时检查 PostBacks:

    if (!IsPostBack)
         YourControlId.DataBind();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      相关资源
      最近更新 更多