2012-07-16 12 views
1

我使用asp.net 3.5(codebehind c#)。我的用戶正在運行IE 7或8.我有一個數據輸入頁面,其中有幾個TextBox es。重置我的文本框不會一直工作。怎麼修?

當我想清除所有TextBox es時,我會執行sever.transfer回到同一頁面。

也許99%的時間,這清除了TextBox es。每隔一段時間它都不會。

我知道,往返於服務器發生的原因是:

  • 的下拉列表和radiobuttonlists在頁面上得到復位,
  • DB處理髮生如圖紀錄已被保存到 DB。

這種不一致令我感到困惑。

什麼可能導致TextBox es以這種方式持續數據,我該如何防止它發生?

它導致用戶兩次保存相同的數據。

我不認爲這將有什麼關係呢,但也有用於驗證的頁面上的各種功能的JS,資本輸入的第一個字母,等

+1

您是否能夠在「乾淨的」IE安裝中重現此行爲,即人員沒有任何加載項的安裝。有一些加載項可以「保存」表單數據以幫助節省填寫表單的時間。 – CodingGorilla 2012-07-16 14:33:06

+0

我無法重現此行爲。那就是問題所在。但是,我將檢查正在使用的計算機是否有任何插件。你可以建議一些添加到尋找?即使有加載項,爲什麼他們只會在大約1%的時間內發生這種情況? – 2012-07-16 14:38:34

+0

我個人使用的是LastPass,https://lastpass.com – CodingGorilla 2012-07-16 14:40:27

回答

2

由於這MSDN article describes the Server.Transfer method,這是可能不是正確的方法來清空TextBox es。該方法明確保留所有狀態信息。

更好的方法是內this answer描述:

foreach (var item in Page.Controls) 
     { 
      if (item is TextBox) 
      { 
       ((TextBox)item).Text = ""; 
      } 
     } 

你將保持往返於只有一個,你可以把所有其他用戶輸入,因爲他們,如果你喜歡。