2012-07-16 70 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 = ""; 
      } 
     } 

你将保持往返于只有一个,你可以把所有其他用户输入,因为他们,如果你喜欢。