Asp 下拉列表未 return 选择值。 (下拉列表是数据绑定的)

Asp Dropdownlist does not return selected value. (Dropdownlist is Databound)

我创建了一个下拉列表,它从 table 列加载数据。现在我想 select Index_change_event 上下拉列表的值。

protected void Page_Load(object sender, EventArgs e)
{
    string username = Session["username"].ToString();
    SqlConnection con = new SqlConnection("Data Source=DLINK\SQLEXPRESS;User ID=sa;Password=logmein;Initial Catalog=AndroidAppDB");
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    con.Open();
    string query = "select Fence_Name from Fence where Username='" + username + "'";
    SqlCommand command = new SqlCommand(query, con);
    DropDownList1.DataSource = command.ExecuteReader();
    DropDownList1.DataValueField = "Fence_Name";
    DropDownList1.DataTextField = "Fence_Name";
    DropDownList1.DataBind();
    con.Close();
    //arr = Session["arr"].ToString();        
}

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
       Label2.Text = DropDownList1.SelectedItem.Value;
    }
}

您只是在检查 !IsPostBack。由于事件是从回传中触发的,因此永远不会是 运行。另外,请注意不要重新绑定数据源,因此要更改 page_load.

上的选定值

DropDownList1_SelectedIndexChanged 事件中删除 if (!IsPostBack)if (!IsPostBack) 应该在 Page_Load 事件中。

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    Label2.Text = DropDownList1.SelectedItem.Value;
}

protected void Page_Load(object sender, EventArgs e)
{
     if (!IsPostBack)
     {
          string username = Session["username"].ToString();
          SqlConnection con = new SqlConnection("Data Source=DLINK\SQLEXPRESS;User ID=sa;Password=logmein;Initial Catalog=AndroidAppDB");
          SqlCommand cmd = new SqlCommand();
          cmd.Connection = con;
          con.Open();
          string query = "select Fence_Name from Fence where Username='" + username + "'";
          SqlCommand command = new SqlCommand(query, con);
         DropDownList1.DataSource = command.ExecuteReader();
         DropDownList1.DataValueField = "Fence_Name";
          DropDownList1.DataTextField = "Fence_Name";
        DropDownList1.DataBind();
         con.Close();
     }
}