ASP Net - 从Code Behind转换Request.Form控件

时间:2010-10-15 18:03:49

标签: asp.net html vb.net

这看起来很简单,但出于某种原因,我难倒......

我动态生成一个HTML Select Box,让我们称之为myselect。我根据一些数据库值创建这个选择框我生成一个HTML选择框..几乎像一个字符串,我只是吐出到页面。所以它从来不是代码隐藏中的控件,只是浏览器呈现为HTML的字符串的一部分。如果我提交我的表单,并在我的代码隐藏中执行:

Dim myVal as String = Request.Form("myselect")

该代码将为我提供myselect选择框的VALUE。如何引用此控件将其转换为System.Web.UI.HtmlControls.HtmlSelect控件? Request.Form似乎给了我值,但我想引用对象本身..

3 个答案:

答案 0 :(得分:0)

如果您在代码文件中动态生成控件,那么在回发后它将无法使用。只要您在处理视图状态之前再次生成它(您可以在oninit中执行它),那么您可以像访问其他任何内容一样访问它。

MySelect.SelectedValue

答案 1 :(得分:0)

如果您的页面上没有静态声明此选择框(也就是说,您将其添加到Control Collection中),则必须执行以下操作:Dim MySelect as HtmlSelect = Page.FindControl("MySelect") as HtmlSelect

如果我的演员语法稍微偏离,你将不得不原谅我 - 我习惯用C#进行演员。

答案 2 :(得分:0)

回应上述评论(感谢您的帮助),我发现 Gabriel McAdams和jwiscarson 不得不说的是真的。在浏览Request对象时,我发现它只是一组key \ value对。执行Request.Form(“myformobj”)将返回一个值,因为这是应用程序可用的所有内容。如果有必要,我想我可以提供一些漂亮的javascript来跟踪表单对象类型,但在我的情况下肯定没有必要。

感谢您的帮助