2个ComboBox 控件来显示省市级联最主要的是根据这个数据库来设计:
主键(自增)ID CITYNAME LASTLEVELID
1 北京 0
2 天津 0
3 上海 0
4 重庆 0
5 东城区 1
6 南开区 2
7 徐汇区 3
8 万州区 4 <5 东城区 1>东城区是北京的区县LASTLEVELID是1对应的是数据北京ID 1;
下面的区也是这样。LASTLEVELID 的数字是几对应 ID几! 现在实现了省的显示:
public void bindCityName()
{
string sql = "select cityname from city where lastlevelID='0'";
DataSet ds = ConnectionUtil.getDataset(sql, "city");
this.cmbProvince.DataSource = ds.Tables["city"].DefaultView;
this.cmbProvince.DisplayMember = "cityname";
this.cmbProvince.ValueMember = "cityname";
}
这个市区怎么实现了?
private void cmbProvince_SelectedIndexChanged(object sender, EventArgs e)
{
//string provincess =cmbProvince.SelectedValue.ToString();
//string sql = "select cityname from city where id='" + provincess + "'";
//DataSet ds = ConnectionUtil.getDataset(sql, "city");
//this.cmbCity.DataSource = ds.Tables["city"].DefaultView; //this.cmbCity.DisplayMember = "cityname";
//this.cmbCity.ValueMember = "cityname";
}
大家帮我想想这个private void cmbProvince_SelectedIndexChanged(object sender, EventArgs e)事件怎么写了,
才能出来市了!
主键(自增)ID CITYNAME LASTLEVELID
1 北京 0
2 天津 0
3 上海 0
4 重庆 0
5 东城区 1
6 南开区 2
7 徐汇区 3
8 万州区 4 <5 东城区 1>东城区是北京的区县LASTLEVELID是1对应的是数据北京ID 1;
下面的区也是这样。LASTLEVELID 的数字是几对应 ID几! 现在实现了省的显示:
public void bindCityName()
{
string sql = "select cityname from city where lastlevelID='0'";
DataSet ds = ConnectionUtil.getDataset(sql, "city");
this.cmbProvince.DataSource = ds.Tables["city"].DefaultView;
this.cmbProvince.DisplayMember = "cityname";
this.cmbProvince.ValueMember = "cityname";
}
这个市区怎么实现了?
private void cmbProvince_SelectedIndexChanged(object sender, EventArgs e)
{
//string provincess =cmbProvince.SelectedValue.ToString();
//string sql = "select cityname from city where id='" + provincess + "'";
//DataSet ds = ConnectionUtil.getDataset(sql, "city");
//this.cmbCity.DataSource = ds.Tables["city"].DefaultView; //this.cmbCity.DisplayMember = "cityname";
//this.cmbCity.ValueMember = "cityname";
}
大家帮我想想这个private void cmbProvince_SelectedIndexChanged(object sender, EventArgs e)事件怎么写了,
才能出来市了!
{
comboBox2.Items.Clear();
DataRowView drv = (DataRowView)comboBox1.SelectedItem;
string Id = drv.Row["id"].ToString(); }
你可以把ComboBox重新写成新的下拉树形控件
你把 ComboBox 重新写成新的 树形下拉控件就可以实现了 就像TREEVIEW 一样只不过在下拉框中弹出TREEVIEW
{
....
cmdp1.datasource=dt;
cmbp1.DisplayMember="PName";
cmbp1.ValueMember="PId";
}
cmbp1_selectindexchange(object sender,Eventargs e)
{
if(cmbp1.selectitems!=null)
{
cmbc2.enable=true;
//....select*from citys where pid=cmbp1.selectitem.value;
cmbc2.datasource=dtc;
cmbp1.DisplayMember="CName";
cmbp1.ValueMember="CId";
}
好象这样成地
}
string sql = "select cityname from city where id='" + provincess + "'";
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int index = this.comboBox1.SelectedIndex;
for (int i = 0; i < this.comboBox1.Items.Count; i++)
{
if(i == index)
this.comboBox2.DataSource = city[i];
}
}