三个comboBox数据的联动

wangxianshou 2009-05-31 07:52:15
表的结构
--国家代码-----国家名-----省份代码----省份名-----城市代码-----城市名
--86--------zhongguo--------1-----shandong-----11---------weifang
--86--------zhongguo--------1-----shandong-----12---------yantai
--86--------zhongguo--------2-----sichuan-----11---------beichuan
--85----------riben---------1-----jiuzhou-----11---------dongjing

随便动哪个comboBox,数据联动能够实现

但是我想要的效果是
comboBox1的数据有两条:zhongguo riben 而现在是 zhongguo,zhongguo,zhongguo,riben
comboBox2的数据有三条:shandong sichuan jiuzhou 而现在是 shandong shandong sichuan jiuzhou
comboBox1的数据有四条:是最后一级,一般情况是没有重复数据,有了重复数据,最后也能只显示一条



private void Form1_Load(object sender, System.EventArgs e)
{
DataTable dt=new DataTable();
dt.Columns.Add(new DataColumn("CountryCD",typeof(Int32)));
dt.Columns.Add(new DataColumn("CountryName",typeof(string)));
dt.Columns.Add(new DataColumn("ProvinceCD",typeof(Int32)));
dt.Columns.Add(new DataColumn("ProvinceName",typeof(string)));
dt.Columns.Add(new DataColumn("CityCD",typeof(Int32)));
dt.Columns.Add(new DataColumn("CityName",typeof(string)));
DataRow dr1=dt.NewRow();
dr1[0]=86;
dr1[1]="zhongguo";
dr1[2]=1;
dr1[3]="shandong";
dr1[4]=11;
dr1[5]="weifang";
dt.Rows.Add(dr1);
DataRow dr2=dt.NewRow();
dr2[0]=86;
dr2[1]="zhongguo";
dr2[2]=1;
dr2[3]="shandong";
dr2[4]=12;
dr2[5]="yantai";
dt.Rows.Add(dr2);
DataRow dr3=dt.NewRow();
dr3[0]=86;
dr3[1]="zhongguo";
dr3[2]=2;
dr3[3]="sichuan";
dr3[4]=11;
dr3[5]="beichuan";
dt.Rows.Add(dr3);
DataRow dr4=dt.NewRow();
dr4[0]=85;
dr4[1]="riben";
dr4[2]=1;
dr4[3]="jiuzhou";
dr4[4]=11;
dr4[5]="dongjing";
dt.Rows.Add(dr4);

this.comboBox1.DataSource=dt;
this.comboBox1.DisplayMember="CountryName";
this.comboBox1.ValueMember="CountryCD";

this.comboBox2.DataSource=dt;
this.comboBox2.DisplayMember="ProvinceName";
this.comboBox2.ValueMember="ProvinceCD";

this.comboBox3.DataSource=dt;
this.comboBox3.DisplayMember="CityName";
this.comboBox3.ValueMember="CityCD";
}
...全文
288 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangyanyang 2009-08-08
  • 打赏
  • 举报
回复
代码有点多
chunwudu 2009-08-03
  • 打赏
  • 举报
回复
不要嫌麻烦,全部写到数据库里,然后用SQL语句控制。
wangxianshou 2009-08-03
  • 打赏
  • 举报
回复
其实没有满意的答案~~~~~
lzc2125 2009-07-16
  • 打赏
  • 举报
回复
每次联动都要给下拉框重新赋值!!
jinlingoo1 2009-07-16
  • 打赏
  • 举报
回复
ajax做
meheartfly 2009-07-16
  • 打赏
  • 举报
回复
哎,无语,真够菜的
fengying0529 2009-07-16
  • 打赏
  • 举报
回复
学习。。。。
CQBSBJIANXY 2009-07-15
  • 打赏
  • 举报
回复
做成三个表,分别在绑定
然后用户单击事件生成下下一级的显示,用distinct 去除重复的
wangxianshou 2009-07-15
  • 打赏
  • 举报
回复
还有没有更好的方法啊
suners 2009-06-01
  • 打赏
  • 举报
回复
重复 绑定
wangxianshou 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 datafansbj 的回复:]
你将comboBox绑定了数据源,这将导致comboBox1中出现了重复的zhongguo
不要绑定数据源,直接初始化comboBox即可
[/Quote]

直接初始化comboBox,是可以避免重复数据,但是联动怎么实现,
还要自己写一些实现的代码

而现在这样邦定后,不用任何代码,就能实现联动,就是有些重复数据
我想在这个基础上把重复数据去除掉,仍能数据联动
我之前也用过其他方法
当上一级改变时,重新为下一级邦定数据,以下级类同

有没有比较好的,效率的,简洁的实现方法
gwf25sz 2009-06-01
  • 打赏
  • 举报
回复
手动绑定
绝对不会有问题的
SongSandy 2009-06-01
  • 打赏
  • 举报
回复
后面绑定数据源要有过滤条件
qgylovelj 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 datafansbj 的回复:]
你将comboBox绑定了数据源,这将导致comboBox1中出现了重复的zhongguo
不要绑定数据源,直接初始化comboBox即可
[/Quote]

正解
feifeiyiwen 2009-06-01
  • 打赏
  • 举报
回复
同上
w5dy 2009-06-01
  • 打赏
  • 举报
回复
绑定前写上Combox1.Items.Clear();然后进行绑定
CqCoder 2009-06-01
  • 打赏
  • 举报
回复
UP
小D 2009-06-01
  • 打赏
  • 举报
回复
javascript做过一次,-
datafansbj 2009-05-31
  • 打赏
  • 举报
回复
你将comboBox绑定了数据源,这将导致comboBox1中出现了重复的zhongguo
不要绑定数据源,直接初始化comboBox即可
wangxianshou 2009-05-31
  • 打赏
  • 举报
回复
补充:
当上一级动的时候,下一级默认的选择第一条即可,下下一级默认的选择第一条,.......
加载更多回复(1)

111,090

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧