1

我正在使用 asp.net 3.5(代码隐藏 c#)。我的用户正在运行 IE 7 或 8。我有一个包含多个TextBoxes 的数据输入页面。

当我想清除所有TextBoxes 时,我会执行 sever.transfer 回到同一页面。

也许 99% 的时间,这会清除TextBoxes。每隔一段时间它就不会。

我知道发生了到服务器的往返,因为:

  • 页面上的下拉列表和单选按钮列表被重置,并且
  • DB 处理发生,如已保存到 DB 的记录所示。

这种不一致让我感到困惑。

什么可能导致TextBoxes 以这种方式保存数据,我该如何防止它发生?

这导致用户两次保存相同的数据。

我不认为这与它有任何关系,但是页面上还有各种js函数用于验证,将输入的第一个字母大写等

4

1 回答 1

2

由于这篇MSDN 文章描述了 Server.Transfer 方法,这可能不是清空TextBoxes 的正确方法。该方法显式保留所有状态信息。

此答案中描述了一种更好的方法:

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

您将只保留一次往返,如果您愿意,您可以保留所有其他用户输入。

于 2013-02-13T08:05:30.407 回答