每当值发生变化时,我都会有一个下拉框,文本框应该通过在以下方法中执行select查询来更新。但是,查询总是会返回下拉框中第一个项目的结果。当我调试程序时,文本的值始终是下拉框中第一项的值。
如果我使用SELECT郊区FROM站点WHERE SiteName ='“+ siteId.SelectedValue +”'“然后我得到正确的值显示在文本框中。当查询是从网站选择地址时,我遇到问题时得到正确的值。
protected void siteId_SelectedIndexChanged(object sender,EventArgs e) { string connect =“Provider = Microsoft.Jet.OleDb.4.0; Data Source = | DataDirectory | db.mdb”; 使用(System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connect)) {
conn.Open();
string insertQuery= "SELECT SiteAddress FROM sites WHERE SiteName = '" + siteId.SelectedValue + "'";
using (System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(insertQuery, conn))
{
object text =cmd.ExecuteScalar();
string final = text.ToString();
TextBox1.Text = final;
conn.Close();
Dispose(); }
}
}
答案 0 :(得分:0)
我的猜测是,转到填充列表的位置并添加if(!Page.IsPostBack)
if(!Page.IsPostBack)
{
//bind items to dropdown list here
}
答案 1 :(得分:0)
在向下拉列表中添加更改值(新值)之前,您需要清除下拉列表中的现有值(旧值)。