我是.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属性,但您无法读取该值。