从数据源填充的下拉列表 - 从后面的代码中无法访问值

时间:2012-06-19 16:18:20

标签: c# asp.net data-binding drop-down-menu datasource

我有一个asp dropbox,我从数据库填充:

这是aspx

<asp:DropDownList runat="server" ID="ddl_last" AppendDataBoundItems="true">

这是cs:

  ddl_last.DataSource = eggsContext.Customers;
        ddl_last.DataValueField = "last_name";
        ddl_last.DataTextField = "last_name";
        ddl_last.DataBind();

当我尝试从c#代码中获取ddl_last.SelectedValue时,我什么也得不到。 infact ddl_last.Items计数为0!当我不从代码填充它,但写在aspx

<asp:ListItem Text="example" />
一切正常。

我可以通过写作从javascript获取值 的document.getElementById( 'ddl_last')值;

但是我想知道微软此次搞砸了什么,这背后的代码不起作用?

2 个答案:

答案 0 :(得分:1)

在评论中看到您的问题后,我认为这可以帮助您解决问题:

  

要禁用页面的视图状态并为页面上的特定控件启用它,请将页面控件的EnableViewState属性设置为true,将页面的ViewStateMode属性设置为禁用,并将控件的ViewStateMode属性设置为Enabled。

http://msdn.microsoft.com/en-us/library/system.web.ui.control.viewstatemode.aspx

另请注意,在禁用ViewState的情况下,您仍然可以通过

检索发布的
if (Request["ddl_last"] != null)
    val = Request["ddl_last"];

答案 1 :(得分:0)

看看这个问题,当您尝试访问ddl_last.SelectedValue和ddl_last.Items时,您的ddl_last列表仍未被数据绑定。确保在绑定数据后访问这些值