【问题标题】:ASP.Net Databound control not updating, possible cache issue?ASP.Net 数据绑定控件未更新,可能存在缓存问题?
【发布时间】:2011-08-28 07:16:32
【问题描述】:

使用这样的设置处理项目:

  • ASPX 页面
    • 用户控制 1
      • 单选按钮 1-12
    • 用户控制 2
      • 根据单选按钮 1-12 计算的值标签

两个用户控件都是数据绑定的,都有一个从 ASPX 页面调用的“SaveData”方法。

UserControl2 中的值在标签中。第一个是单击的单选按钮的编号(1 到 12),第二个是根据该编号计算的值。

当页面被保存时,值被正确保存并重新填充单选按钮。当 UserControl 重新填充时,标签仍然是旧值。

如果您然后将光标放在地址栏中并刷新,您会遇到同样的问题。但是如果你 CTRL + Refresh,一切都很好。

很明显,我遇到了第二个 UserControl 缓存的问题。我该如何解决这个问题,为什么第一个 UserControl(带有单选按钮)不缓存?

编辑
在测试时,我添加了一个与 RadioButton 和 Label 绑定到相同值的 TextBox。 3 个控件,在 Field1 上使用 Bind 的 RadioButton,在 Field1 上使用 Eval 的 TextBox 和 Label(但尝试过 Bind 也不起作用)。
我将 RadioButton 从 1 更改为 3 并保存。
在 PostBack 上,RadioButton 已正确更新为 3。TextBox 和 Label 仍然显示为“1”。
然后我将 RadioButton 更改为 6 并在 TextBox 中键入“4”(测试值的更改是否会强制更新,即使它是在 EVAL 上,而不是 BIND)并点击“Save”。
在 PostBack 上,RadioButton 在 6 时是正确的,但 TextBox 和 Label 都显示为“3”。

不知道这意味着什么,但有人可能会理解。

【问题讨论】:

  • 另外,因为我知道这个问题会被问到,所以我们假设它的设置结构不能改变。
  • 请发布您的代码。我认为这不是缓存问题。
  • 对于有效的控件,有太多代码要发布。对于没有的控件,后面的代码中没有任何内容。只是控件中的一个 ObjectDataSource 和 Bind。
  • 是否涉及任何 Ajax,即 UpdatePanel?
  • 两个用户控件是否在页面周期的同一点填充?不过,这并不能解释浏览器缓存。我不确定这是怎么发生的,除非你真的修改响应头来做到这一点。

标签: c# asp.net data-binding browser-cache


【解决方案1】:

问题归结为在 DataBinding 之后发生在 2 个用户控件上调用“SaveData”方法的按钮。在“保存数据”方法内(或在第一个 UserControl 保存后的任何时间)调用第二个 UserControl 上的“Form.DataBind”可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多