2011-05-18 59 views
1

与这样的设置工作的一个项目:ASP.Net Databound控件不更新,可能的缓存问题?

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

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

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

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

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

所以很明显,我有第二个UserControl缓存的问题。我怎样才能解决这个问题,为什么第一个UserControl(带有单选按钮)缓存?

EDIT
测试时我添加绑定到相同的值作为单选按钮和标签一个TextBox。 3个控件,RadioButton在Field1上使用Bind绑定,TextBox和Label在Field1上使用Eval(但尝试绑定,但也没有工作)。
我将RadioButton从1更改为3并保存。
在PostBack上,RadioButton被正确更新为3.TextBox和Label都仍然表示“1”。
然后,我将RadioButton更改为6并在TextBox中键入“4”(测试值的更改是否会强制更新,即使它在EVAL上,而不是BIND)并点击“Save”。
在PostBack上,RadioButton在6时正确,但TextBox和Label都表示“3”。

不知道这意味着什么,但有人可能会明白这一点。

+0

另外,因为我知道这个问题会被问到,让我们假设这个设置的结构不能被改变。 – 2011-05-18 18:28:09

+0

请发布您的代码。我不认为这是一个缓存问题。 – TheGeekYouNeed 2011-05-18 18:28:50

+0

对于有效的控件,发布的代码太多。对于没有的控件,代码中没有任何内容。只需一个ObjectDataSource并绑定到控件中。 – 2011-05-18 18:30:45

回答

0

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