重置我的文本框不会一直有效。怎么修?

时间:2012-07-16 14:20:54

标签: asp.net webforms

我使用的是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 个答案:

答案 0 :(得分: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 = "";
            }
        }

如果您愿意,您可以将往返保持为一个,并且可以保留所有其他用户输入。