我在页面上有一个数据绑定下拉列表,在page_load中我设置了selectedValue(在'not isPostBack'中)。
虽然页面显示正常,并在page_load中显示正确的项目..如果我尝试获取selectedValue()并将其显示在屏幕上,我总是得到null ... selectedIndex是-1。
我有一个按钮,点击它时会引用这个ddl的selectedValue,这里它会拉出预期的结果..那么为什么我在设置它之后不能立即看到它,同时仍然在page_load中?
欢呼:)编辑:代码..
ddl声明
<asp:DropDownList runat="server" ID="dlCountryList" DataSourceID="dsCountryList"
DataValueField="countrylistid" DataTextField="description">
</asp:DropDownList>
和page_load
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
dlCountryList.SelectedValue = "GR"
Response.Write("*" + CStr(dlCountryList.SelectedIndex) + "*")
End Sub
答案 0 :(得分:1)
设置所选值后,手动调用下拉列表的DataBind()方法。
SelectedValue不是控件的普通get / set属性,通过设置它你只设置一个下拉绑定时使用的“标志”。
默认情况下,它在Page_Load事件之后绑定(不确定哪个事件完全确定),但也可以手动调用它。