ASP.net保存下拉列表 - 选定项目作为会话

时间:2014-07-05 13:45:47

标签: c# asp.net

我想将下拉列表的所选项目保存为会话,但我总是从位置表中获取第一个结果。

ASP.net:

<div>
    <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
</div>

C#(只是将位置放到下拉列表中工作正常)

using(SqlConnection con = new SqlConnection(CS))
{
    SqlCommand cmd = new SqlCommand("select location_id, location_name from locations", con);

    con.Open();
    DropDownList1.DataTextField = "location_name";
    DropDownList1.DataValueField = "location_id";
    DropDownList1.DataSource = cmd.ExecuteReader();
    DropDownList1.DataBind();
}

问题:始终从数据库中检索第一个位置。

protected void btnGo_Click(object sender, EventArgs e)
{
    string location;
    Session["userLocation"] = DropDownList1.SelectedItem;
    location = Session["userLocation"].ToString();
}

感谢帮助者。

1 个答案:

答案 0 :(得分:1)

只有在Page.IsPostBack等于False时才应该进行绑定。

原因可能是每次请求页面时都会调用填充DropDownList1的数据操作。此数据检索也可能在btnGo_Click执行之前发生,因此SelectedIndex将重置为0,这是您案例中的第一个位置。