c# winform 如何实现combox 两级联动 同时获取相应的值?
刚学习这块,正在做一个批量注册网站会员的软件,现在想实现一个个人注册信息里的省市两级联动选择,同时取出相应的数据值。
比如我在combox的下拉框中选择的是“广西省--南宁市”然后获取相应的省市代码“4501”(备注:广西省的代码为45,南宁市代码这01),请问这个应该如何实现呢?
附网站注册页面截图:比如世纪佳缘网站注册页面 http://reg.jiayuan.com/signup/fillbasic.php?from=D010
用AJAX,跟踪第一个COMBOX的SELECTEDINDEXCHANGED事件,然后调用AJAX获取第二个对象的数据,并填充进去。
现在很多网站都是用这个技术,http://download.superdata.com.cn就有这个技术的应用。
当然,也可以通过POSTBACK来实现。。。只是这样就。。。呵呵,你会知道好坏的。
可否提供详细代码呢?最好是不需要数据库就可以实现的那就更好了。目前我已参照相关方法实现两级联动,可是达不到我想要的效果。参考资料:http://www.mingricd.com/bcjyzinfo-1390.html
@老虎下山: @老虎下山: 忘记你说的是WINFORM了。 让省COMBOX绑定到一个省DATAVIEW,让市COMBOX绑定到市DATAVIEW。对省COMBOX绑定SELECTCHANGED事件,在事件中,获取省的ID,然后过滤市COMBOX的DATAVIEW的条件(FILTER=省ID==选择的省ID),就能实现了。很简单的。
@笨笨蜗牛: 呵呵,是的。我这个是winform状态下的,还希望多指点哦,刚刚接触这个,很多概念都不是很清楚的。老师可否提供一个小的样版呢?
@老虎下山: 按照我前面说的,把所有的数据(省市)都拉出来,然后定义两个视图,分别指向不同的数据分类,并绑定到COMBOX,当省变动后,修改市视图数据的过滤器,市COMBOX的数据就自动变化了。
c# winform 如何实现combox 两级联动 同时获取相应的值?
-------------------------------
试试 ItemChange事件
c# webform???伙计,说清楚点噢!!
c# webform 的话,试试 jquery----ajax
可否提供详细方法与代码呢?最好是不需要数据库就可以实现的那就更好了。目前我已参照相关方法实现两级联动,可是达不到我想要的效果。参考资料:http://www.mingricd.com/bcjyzinfo-1390.html
@老虎下山: 定义一个HttpHandler吧,根据你传人的Province 的id 返回你想要的ProvinceName和对应的市区,可以是json格式的,也可以是xml,这个要看你的爱好了!祝你早日解决!!
具体的jquery 的 ajax 结合 change事件 请参考相关的资料 google一下吧
晚安,伙计!!
@Angkor: 谢谢,
到底是windows程序还是web程序啊,windows程序直接在combox的selectchange事件中通过选中项的value去获取对应市级数据;如果是web程序那就用ajax呗
是windows程序,这个并不是直接获取value的,比如对外显示的是“湖南--长沙”实际Post 的数据却是“4301”
。。到底是winform还是web,都木有说清楚,这一堆人还答的津津有味
winform下的combobox控件具有两个属性,一个是value,一个是text
value对应你绑定的数据源的ValueMember
text对应DisplayMember
如果你绑定数据源的时候指定了这两个,那么就可以达到你所谓的对外显示的是“湖南--长沙”实际获取的数据却是“4301”
那么我们就可以在第一个combobox的SelectedValueChanged 或者SelectedIndexChanged事件中任选其一作为第二个combobox的数据源重新绑定的触发事件
你明白了吗?
不是咱能直接说问题吗,又是源码,难道这里成 百度知道了!
提示一下,combobox 有个select事件,在那里面做文章。
用combobox的selectchenge事件是可以的
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;
}