3

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

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

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

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

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

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

我环顾四周,试图找到有关如何从此用户控件中获取所选值的答案,但在这方面是新手,还没有找到它。我已经查看了递归检查子控件的控件的函数,但无法完成这项工作。

任何帮助,将不胜感激

4

1 回答 1

0

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

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

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

于 2012-10-11T14:59:01.710 回答