上代码:private void fillAutolist()
{
lstName.Items.Clear(); //定义一个sql语句
//该sql语句将从Client表中检索三个字段信息:ClientID、ClientName、AddressStr
string selectSql = "select ClientID,ClientName,AddressStr from OrderClient"; //定义Ado.net对象
SqlConnection con = new SqlConnection(myConn);
SqlCommand cmd = new SqlCommand(selectSql, con);
SqlDataReader reader; //打开数据库连接并读取信息 try
{
con.Open();
reader = cmd.ExecuteReader();
//对于每一条记录,将ClientName、和AddressStr字段连接成一个字符串
//以作为下拉列表框中列表项的显示文本
//并将该列表项的Value属性设置为该记录唯一的ID值
while (reader.Read())
{
ListItem newItem = new ListItem();
newItem.Text = reader["ClientName"] + "," + reader["AddressStr"];
newItem.Value = reader["ClientID"].ToString();
lstName.Items.Add(newItem);
}
reader.Close();
lblResults.Text= (lstName.SelectedItem.Value);
}
catch (Exception err)
{
lblResults.Text = "Error reading list of names";
lblResults.Text = err.Message;
}
finally
{
con.Close();
}
}想让lblResult动态显示所选择的Droplist选项的ID却显示不了,只能显示一开始选择的那个默认的选项~?
{
lstName.Items.Clear(); //定义一个sql语句
//该sql语句将从Client表中检索三个字段信息:ClientID、ClientName、AddressStr
string selectSql = "select ClientID,ClientName,AddressStr from OrderClient"; //定义Ado.net对象
SqlConnection con = new SqlConnection(myConn);
SqlCommand cmd = new SqlCommand(selectSql, con);
SqlDataReader reader; //打开数据库连接并读取信息 try
{
con.Open();
reader = cmd.ExecuteReader();
//对于每一条记录,将ClientName、和AddressStr字段连接成一个字符串
//以作为下拉列表框中列表项的显示文本
//并将该列表项的Value属性设置为该记录唯一的ID值
while (reader.Read())
{
ListItem newItem = new ListItem();
newItem.Text = reader["ClientName"] + "," + reader["AddressStr"];
newItem.Value = reader["ClientID"].ToString();
lstName.Items.Add(newItem);
}
reader.Close();
lblResults.Text= (lstName.SelectedItem.Value);
}
catch (Exception err)
{
lblResults.Text = "Error reading list of names";
lblResults.Text = err.Message;
}
finally
{
con.Close();
}
}想让lblResult动态显示所选择的Droplist选项的ID却显示不了,只能显示一开始选择的那个默认的选项~?
设置 AutoPostBack="true"
onselectedindexchanged="你的方法"
然后 lblResults.Text= (lstName.SelectedItem.Value);
{
lstName.Items.Clear();if(!IsPostBack)
{
lstName.SelectedIndexChanged += new EventHandler(lstName_SelectedIndexChanged);
lstName.AutoPostBack = true;
}
....
}
void lstName_SelectedIndexChanged(object sender, EventArgs e)
{
lblResults.Text= (lstName.SelectedItem.Value); }
谢谢你!~上面那个问题用你的方法解决了 主要还是想问一下我把选择的选项动态显示在lblResult中时,抛出异常‘= ’附近出现错误 就是下面 reader附近出错了 这是为什么呢?(下面的代码和上面的是连着的……)protected void lstName_SelectedIndexChanged(object sender, EventArgs e)
{
//创建一个SQl语句,根据所选列表项VALUE属性所指定的ID,查询匹配记录
string selectSQL;
selectSQL = "select * from OrderClient";
selectSQL += "where ClientID='" + lstName.SelectedItem.Value + "'";
SqlConnection con = new SqlConnection(myConn);
SqlCommand cmd = new SqlCommand(selectSQL, con);
SqlDataReader reader; try
{
con.Open();
reader = cmd.ExecuteReader();
reader.Read(); //使用检索到的记录构造一个字符串,并将该信息显示在一个Label控件中
StringBuilder sb = new StringBuilder(); sb.Append(reader["ClientName"]);
sb.Append(",");
sb.Append(reader["AddressStr"]);
sb.Append(",");
sb.Append(reader["PostCode"]);
sb.Append(",");
sb.Append(reader["Telephone"]);
sb.Append(",");
sb.Append(reader["Email"]);
lblResults.Text = sb.ToString(); reader.Close();
}
catch (Exception err)
{
lblResults.Text = "错误啦!";
lblResults.Text += err.Message;
}
finally
{
con.Close();
}
lblResults.Text= (lstName.SelectedItem.Value);
}
没必要每次选择一次就重新绑定一次,
主要把 lblResults.Text= (lstName.SelectedItem.Value);这一行写在SelectedChange里面就可以了,
我重新上了一段代码 再帮我看看 谢谢……lblResults.Text= (lstName.SelectedItem.Value)我只是为了看看所选择的ID是否正确~ 我上面重新上了一段代码 还有问题~!就是显示选择的ClientID的详细信息在lblResults里面……
selectSQL += "where ClientID='" + lstName.SelectedItem.Value + "'";原因是你OrderClient和where 中间没有空格,组合在一起就成OrderClientwhere ClientID....