首页 新闻 赞助 找找看

c# winform 如何实现combox 两级联动 同时获取相应的值?

0
悬赏园豆:100 [已解决问题] 解决于 2012-06-28 20:53

c# winform 如何实现combox 两级联动 同时获取相应的值?

刚学习这块,正在做一个批量注册网站会员的软件,现在想实现一个个人注册信息里的省市两级联动选择,同时取出相应的数据值。

比如我在combox的下拉框中选择的是“广西省--南宁市”然后获取相应的省市代码“4501”(备注:广西省的代码为45,南宁市代码这01),请问这个应该如何实现呢?

 

 附网站注册页面截图:比如世纪佳缘网站注册页面 http://reg.jiayuan.com/signup/fillbasic.php?from=D010

老虎下山的主页 老虎下山 | 初学一级 | 园豆:43
提问于:2012-06-26 21:16
< >
分享
最佳答案
1

留个邮箱,直接发你源码。

收获园豆:100
Firen | 大侠五级 |园豆:5385 | 2012-06-27 08:45

邮箱:jianin3@139.com 谢谢

老虎下山 | 园豆:43 (初学一级) | 2012-06-27 09:46

@老虎下山: 请问这个问题您还有吗

一匹有梦想的码农 | 园豆:200 (初学一级) | 2017-05-24 16:52
其他回答(7)
0

用AJAX,跟踪第一个COMBOX的SELECTEDINDEXCHANGED事件,然后调用AJAX获取第二个对象的数据,并填充进去。

现在很多网站都是用这个技术,http://download.superdata.com.cn就有这个技术的应用。

当然,也可以通过POSTBACK来实现。。。只是这样就。。。呵呵,你会知道好坏的。

无之无 | 园豆:5095 (大侠五级) | 2012-06-26 21:39

可否提供详细代码呢?最好是不需要数据库就可以实现的那就更好了。目前我已参照相关方法实现两级联动,可是达不到我想要的效果。参考资料:http://www.mingricd.com/bcjyzinfo-1390.html

支持(0) 反对(0) 老虎下山 | 园豆:43 (初学一级) | 2012-06-26 21:58

@老虎下山: @老虎下山: 忘记你说的是WINFORM了。 让省COMBOX绑定到一个省DATAVIEW,让市COMBOX绑定到市DATAVIEW。对省COMBOX绑定SELECTCHANGED事件,在事件中,获取省的ID,然后过滤市COMBOX的DATAVIEW的条件(FILTER=省ID==选择的省ID),就能实现了。很简单的。

支持(0) 反对(0) 无之无 | 园豆:5095 (大侠五级) | 2012-06-26 22:20

@笨笨蜗牛:  呵呵,是的。我这个是winform状态下的,还希望多指点哦,刚刚接触这个,很多概念都不是很清楚的。老师可否提供一个小的样版呢?

支持(0) 反对(0) 老虎下山 | 园豆:43 (初学一级) | 2012-06-26 22:37

@老虎下山: 按照我前面说的,把所有的数据(省市)都拉出来,然后定义两个视图,分别指向不同的数据分类,并绑定到COMBOX,当省变动后,修改市视图数据的过滤器,市COMBOX的数据就自动变化了。

支持(0) 反对(0) 无之无 | 园豆:5095 (大侠五级) | 2012-06-27 08:10
0

c# winform 如何实现combox 两级联动 同时获取相应的值?

-------------------------------

试试 ItemChange事件

Angkor--:-- | 园豆:1086 (小虾三级) | 2012-06-26 21:52

c# webform???伙计,说清楚点噢!!

支持(0) 反对(0) Angkor--:-- | 园豆:1086 (小虾三级) | 2012-06-26 21:54

c# webform 的话,试试 jquery----ajax

支持(0) 反对(0) Angkor--:-- | 园豆:1086 (小虾三级) | 2012-06-26 21:56

可否提供详细方法与代码呢?最好是不需要数据库就可以实现的那就更好了。目前我已参照相关方法实现两级联动,可是达不到我想要的效果。参考资料:http://www.mingricd.com/bcjyzinfo-1390.html

支持(0) 反对(0) 老虎下山 | 园豆:43 (初学一级) | 2012-06-26 21:58

@老虎下山: 定义一个HttpHandler吧,根据你传人的Province 的id 返回你想要的ProvinceName和对应的市区,可以是json格式的,也可以是xml,这个要看你的爱好了!祝你早日解决!!

具体的jquery 的 ajax 结合 change事件  请参考相关的资料 google一下吧

晚安,伙计!!

支持(0) 反对(0) Angkor--:-- | 园豆:1086 (小虾三级) | 2012-06-26 22:41

@Angkor: 谢谢,

支持(0) 反对(0) 老虎下山 | 园豆:43 (初学一级) | 2012-06-26 22:53
0

到底是windows程序还是web程序啊,windows程序直接在combox的selectchange事件中通过选中项的value去获取对应市级数据;如果是web程序那就用ajax呗

psforever | 园豆:461 (菜鸟二级) | 2012-06-26 23:45

是windows程序,这个并不是直接获取value的,比如对外显示的是“湖南--长沙”实际Post 的数据却是“4301”

支持(0) 反对(0) 老虎下山 | 园豆:43 (初学一级) | 2012-06-27 00:06
0

。。到底是winform还是web,都木有说清楚,这一堆人还答的津津有味

winform下的combobox控件具有两个属性,一个是value,一个是text

value对应你绑定的数据源的ValueMember 

text对应DisplayMember 

如果你绑定数据源的时候指定了这两个,那么就可以达到你所谓的对外显示的是“湖南--长沙”实际获取的数据却是“4301”

那么我们就可以在第一个combobox的SelectedValueChanged 或者SelectedIndexChanged事件中任选其一作为第二个combobox的数据源重新绑定的触发事件

你明白了吗?

澜紫癜青 | 园豆:313 (菜鸟二级) | 2012-06-27 08:57
0

 不是咱能直接说问题吗,又是源码,难道这里成 百度知道了!

  提示一下,combobox 有个select事件,在那里面做文章。

shrimp liao | 园豆:135 (初学一级) | 2012-06-27 11:06
0

用combobox的selectchenge事件是可以的

MingHao_Hu | 园豆:8 (初学一级) | 2012-06-27 17:13
0

private void Form1_Load(object sender, EventArgs e)
        {
            ComPro.DataSource = new string[] { "河南", "山东", "安徽" };


        }

        private void ComPro_SelectedIndexChanged(object sender, EventArgs e)
        {
            string[][] cityStr = { new string[]{ "商丘", "郑州", "开封" }, new string[]{ "菏泽", "威海", "青岛" }, new string[]{ "合肥", "亳州", "徐州" } };
            switch (ComPro.SelectedIndex)
            {
                case 1:
                    comCity.DataSource = cityStr[ComPro.SelectedIndex];
                    break;
                case 2:
                    comCity.DataSource = cityStr[ComPro.SelectedIndex];
                    break;
                case 3:
                    comCity.DataSource = cityStr[ComPro.SelectedIndex];
                    break;

            }

yellowCow | 园豆:202 (菜鸟二级) | 2012-09-02 16:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册