2013-04-08 61 views
0

我在UpdatePanel中有一箇中繼器。在Repeater項目中,我有幾個文本框。我也有「添加新的」按鈕來動態添加新項目到中繼器。問題是每次按「添加新」時,所有用戶輸入都將被刪除。如何更新轉發器並保留用戶輸入?更新updatepanel中的中繼器時存儲用戶輸入

+0

你如何存儲已經添加到中繼器的內容?它的數據源是什麼? – 2013-04-08 20:54:01

+0

你在做任何'PostBack或IsPostBack'檢查你的代碼..?更新面板應該'部分回發'你可以發佈一些相關的代碼..? – MethodMan 2013-04-08 20:54:36

回答

0

每當發生Postback時,Repeater控件就會失去其狀態。您可能需要在Postback上執行以下快速步驟。

  1. 將中繼器數據轉換爲代碼隱藏中某種形式的數據數組(DA)。
  2. 將空元素添加到DA。
  3. 將DA綁定回中繼器控制。
+1

啓用'ViewState'(默認)後,轉發器將在回發期間保留其狀態。所以這一切都取決於數據源以及何時數據綁定中繼器。只有當'!IsPostBack'或添加新項目時才應該完成。 – 2013-04-08 21:08:38

+0

我的問題是,當我按下「添加新的」我重新綁定整個數據源,這會導致所有值重置爲其原始狀態。所以問題是如何填充從HTML返回到DataSource的變化?我應該寫一個方法來手動從轉發器中的每個字段提取值並更新我的對象嗎?或者有一種更簡單的內置方式來將內存中的對象與中繼器HTML進行同步。 – andr111 2013-04-08 22:48:21