如何获取页面init中的文本框值?
我正在使用asp.net 2.0如何获取页面init中的文本框值?
我设置了一个隐藏文本框从javascript和回发,我想检查存储在页面init事件文本框中的值。这是我试过
string t = Request.Form["currentMode"].ToString();
但我得到一个错误,说“对象引用未设置为对象的实例”。
任何想法?asp。
初始化是页面生命周期,其中一切都被初始化。你不能强调任何事情都是可行的。为了做到这一点,你必须使用Page_Load事件...
在init中,回发值尚未加载到控件中,理论上你可以从Request.Form变量中获取值,但它们被命名为作为控件的客户端ID。如果您的控件位于像contentplaceholder或detailsview之类的任何容器中,则它们将在ID上添加各种guff。例如ctl00$cphContentBody$txtMyTextbox
可能是服务器端ID为txtMyTextbox
的控件的ID。
嘿,感谢您的信息,但是我无法在不添加页面加载事件的情况下利用它 – Amit 2010-06-02 10:55:09
这就是一个奇怪的反应。页面加载事件是访问控件属性的标准自然地点。事实上你试图在init事件中访问这些值,这让我认为你有一个很好的理由这样做。当然,我错了。 – 2010-06-02 14:32:37
我在尝试从动态创建的表单(在回发的Init()事件期间组装)中构建 - >提交 - >检索值时碰到过这个问题。正如Ben所述,您可以使用Request.Form
集合手动提取页面控件的值,使用所需控件的UniqueID
(其中将包含Ben正在讨论的“guff”)。
当然,这只是在从视图状态(在LoadComplete之前)填充页面控件的值之前尝试发现它的值时才是必需的。否则,您可以简单地执行TextBox1.Text
之类的操作。
我添加了一个Page_Load事件找不到任何其他解决方案 – Amit 2010-06-02 10:53:13
您也不应该使用Request.Form集合。您应该使用服务器ID来定义文本框,并在代码中使用该ID来访问文本属性。例如:然后在代码中通过以下方式检索文本:NameTextBox.Text –
Koen
2010-06-02 14:10:25