我正在使用asp.net 2.0
我从javascript和回发中设置了一个隐藏的文本框,我想检查存储在页面init事件中的文本框中的值。这是我试过的
string t = Request.Form["currentMode"].ToString();
但我得到一个错误,说“对象引用没有设置为对象的实例。”
有什么想法吗?asp。
答案 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
之类的操作。