如何获取表单视图的insertitemtemplate中dropdownlist用户控件的选定值



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

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

当我执行保存表单视图的用户输入的命令时,我想获得用户指示的所选值,即他们选择的国家。对于其他输入区域,即文本框,我可以使用以下代码:

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

很明显,这种方法不适用于用户控件内的下拉列表。我不能充分利用:

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

我环顾四周,试图找到如何从这个用户控件中获得所选值的答案,但作为新手,我还没有找到。我已经研究过递归检查控件的子控件的函数,但还没能做到这一点。

如有任何帮助,将不胜感激

您想从哪里获得这个值?asp.net文本框<input type=text />会自动保持状态,但对于asp.net DropDownList<select />,情况并非如此

如果您试图在PageInit期间访问DropDownList,则由于ViewState不可用,该值尚未加载。您需要在PageLoad中访问它,或者作为DropDownList上SelectedIndexChanged事件的一部分访问它。

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

最新更新