无论在asp.net中的DropDownList中选择什么,selectedItem都返回相同的值

时间:2014-07-20 08:13:51

标签: c# asp.net

我在aspx页面中定义了这个下拉列表。

 <td style=" font-family:Consolas; ">Select the Category</td>
 <td><asp:DropDownList ID="ddl_cat" runat="server"  Width="100px"  > 
 </asp:DropDownList></td>

它的代码隐藏是:

    SqlCommand cmd = new SqlCommand("select * from main_catTbl", sc.con);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds);
    ddl_cat.DataSource = ds;
    ddl_cat.DataTextField = "material";
    ddl_cat.DataValueField = "mid";
    string a = ddl_cat.SelectedItem.Value;
    ddl_cat.DataBind();
    sc.con.Dispose();
    sc.con.Close();

项目显示在下拉列表中。但是当我选择一些项目并使用时
 string st = ddl_cat.SelectedItem.Value它始终显示下拉列表的第一项。 我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

检查你的函数是否包含上面的代码隐藏(在你的问题中)没有在回发中调用。我的意思是它应该在页面上调用而不是回发。 即

 protected void Page_Load(object sender, EventArgs e)
 {

    if (!Page.IsPostBack)
    {
        your_function();

    }
  }

答案 1 :(得分:0)

希望上面的代码是在组合框的Data_bound事件下给出的,不是吗? 要获得所选值,必须按如下方式给出代码

private void ddl_cat_SelectedIndexChanged(System.Object sender, System.EventArgs e)
{
    string a = ddl_cat.SelectedItem.Value;
}