如何获取位于formview的insertitemtemplate内的dropdownlist usercontrol的选定值?

时间:2012-10-09 21:54:19

标签: asp.net drop-down-menu user-controls findcontrol

我是一个.NET新手,但这是我的问题:

我有一个使用母版页的应用程序。我有一个页面上有 formview ,用于输入地址信息。在insertitemtemplate中是我引用的用户控件。此用户控件是列出国家/地区的下拉列表。 usercontrol具有公共属性以获取和设置所选值。 usercontrol不是数据绑定,而是静态的。用户控件 .ascx 文件中usercontrol的id为“DropDownListCountry”。当我在页面的formview上引用它时,ID为“fvDropDownListCountry”。

当我执行命令以保存formview的用户输入时,我想获得用户已指示他们选择了哪个国家/地区的选定值。对于其他输入区域,即文本框,我可以使用以下代码:

Dim street1 As String = CType(myFrmView.FindControl("fvTextBoxStreet1"), TextBox).Text

很明显,这种方法不适用于用户控件内部的下拉列表。我不能例如使用:

Dim country As String = TryCast(myFrmView.FindControl("fvDropDownListCountry"), DropDownList).SelectedValue

我四处寻找试图找到如何从这个用户控件中获取所选值的答案,但是在此处是新的,还没有找到它。我已经查看函数以递归方式检查子控件的控件,但是无法使其工作。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

你想在哪里获得这个价值? asp.net TextBox <input type=text />自动维护状态,但这不适用于asp.net DropDownList <select />

如果您在PageInit期间尝试访问DropDownList,则由于ViewState不可用,因此尚未加载该值。您需要在PageLoad中或在DropDownList上的SelectedIndexChanged事件中访问它。

仅供参考:非常确定您可以在PageInit期间设置SelectedIndex或SelectedValue属性,但无法读取该值。