我一直被困在這個問題的時間,在網上搜索,但沒有解決方案,但尚未解決我的問題。我有一個下拉列表,它根據輸入到文本字段中的郵政編碼從我的數據庫中的表中檢索計劃名稱。我遇到的問題是:當我輸入郵政編碼時,計劃名稱在下拉列表中填充沒有問題,然後選擇其中一個計劃,當我進一步嘗試在其他具有autppostback的字段中輸入其他信息時= true,則下拉列表不保留其值始終選擇第一個值,我想要的下拉列表保留回傳後選擇的值,這裏是我的代碼:ASP.Net DropDownList保留來自數據庫的值 - AutoPostBack
step1.aspx
<p>
<asp:TextBox ID="txt_zip_code" runat="server" AutoPostBack="true"></asp:TextBox>
</p>
<p>
<asp:DropDownList ID="dd_dental_plan" runat="server" EnableViewState="true">
</asp:DropDownList>
</p>
第一步.cs
protected void Page_Load(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CustomerDataConnectionString"].ConnectionString))
{
using (SqlCommand sqlCmd = new SqlCommand())
{
sqlCmd.CommandText = "SELECT * FROM [dbo].[mfd_plans] WHERE zip_code = @zipCode";
sqlCmd.Parameters.AddWithValue("@zipCode", txt_zip_code.Text);
sqlCmd.Connection = conn;
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sqlCmd);
DataTable dt = new DataTable();
da.Fill(dt);
dd_dental_plan.DataSource = dt;
dd_dental_plan.DataValueField = "plan_id";
dd_dental_plan.DataTextField = "plan_name";
dd_dental_plan.DataBind();
conn.Close();
dd_dental_plan.Items.Insert(0, new ListItem("Please select plan", "0"));
}
}
添加代碼'的IsPostBack()' – 2014-10-20 04:11:15
我做到了,但沒有奏效。如果我再次嘗試並希望輸入不同的郵政編碼,則不會刷新下拉列表。 – user3345212 2014-10-20 04:14:27
爲什麼你在'page_load'中添加這段代碼。有什麼特別的原因嗎?如果沒有,那麼做一件事從'page_load()'中刪除你的代碼'爲它添加一個方法,然後在輸入郵編時調用方法。 – 2014-10-20 04:17:35