我在第一个组合框里的SelectedValueChange 事件里设计,用了数据集,根据第一个组合框的所选的值,写了一个SQL 语句,然后查询, 返回第二个组合框的选项值(去重复的)。但是,第一次使用第一个组合框室,第二个组合框列出了正确的值,但是改变第一个值后,第二个组合框的值增加了对应的值,但以前那个值还在里面!! 你是不是自己使用数据绑定?
第一个选择框改变后,先清除第二个框中的东西,再查询,然后绑定,可以解决你的问题
推荐不要用直接的绑定
第一个选择框改变后,先清除第二个框中的东西,再查询,然后绑定,可以解决你的问题
推荐不要用直接的绑定
重新设置 第二个组合框之前: cbo2.Items.Clear(); //先清空存在的项目。
/// <summary>
/// 国家改变时,更新目的城市列表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cboCountry_SelectedIndexChanged(object sender, System.EventArgs e)
{
if ( cboCountry.SelectedItem == null || cboCountry.Value == null) return;
string sql = null;
sql = "Select * from city where countryCode ='" + cboCountry.Value + "'";
DataTable dtb = (查出的数据);
cboCity.Items.Clear();
cboCity.DataSource = dtb;
cboCity.ValueMember = "cityCode";
cboCity.DisplayMember = "CityName";
}
我按 :
cboCity.Items.Clear();
cboCity.DataSource = dtb;
cboCity.ValueMember = "cityCode";
cboCity.DisplayMember = "CityName";
这样做后,第二次选择 国家 里的选项 就会 报错 : 在设置DataSource 属性后就不能改变 Items 属性!!!
怎么回事啊? 急切等待.......