2011-05-18 39 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」可以解決問題。