如何获取页面初始化中的文本框值?

时间:2010-06-02 09:32:54

标签: c# asp.net

我正在使用asp.net 2.0

我从javascript和回发中设置了一个隐藏的文本框,我想检查存储在页面init事件中的文本框中的值。这是我试过的

string t = Request.Form["currentMode"].ToString();

但我得到一个错误,说“对象引用没有设置为对象的实例。”

有什么想法吗?asp。

3 个答案:

答案 0 :(得分:2)

在init中,回发值尚未加载到控件中,理论上可以从Request.Form变量中捕获值,但它们被命名为控件的客户端ID。如果您的控件位于任何容器中,例如contentplaceholder或detailsview,那么它们将在ID之前添加各种guff。例如ctl00$cphContentBody$txtMyTextbox可以是服务器端ID为txtMyTextbox的控件的ID。

答案 1 :(得分:1)

Init是页面生命周期,其中所有内容都已初始化。你不能强调任何可用的东西。为此,您必须使用Page_Load事件...

答案 2 :(得分:0)

我前几天遇到了这个问题,同时尝试构建 - > gt; submit->从动态创建的表单中检索值(在回发的Init()事件期间组装)。正如Ben所说,您可以使用Request.Form集合手动提取页面控件的值,使用所需控件的UniqueID(其中包含Ben正在谈论的“guff”)。

当然,只有在从viewstate(LoadComplete之前)填充页面控件之前尝试发现页面控件的值时,才需要这样做。否则,您可以执行TextBox1.Text之类的操作。