多个ComboBox绑定同一数据源的问题及解决方法

问题表现:

winform中,多个ComboBox 绑定同一个数据源时,选择其中一个ComboBox,其他的也跟着变成同一选项.

解释:

这种 问题主要是因为combobox绑定了同一个数据源,对数据源的操作导致了其他控件改变.但是在有些情况下, 我们确实需要让多个combobox控件绑定同一个数据源,但不想让他们联动.这样就必须想办法让他们分别对应一个数据源.(如下图.画的比较恶心.差不多一个意思.)其中数据源自然都是同一个,只是绑定的方式略有改变.

解决方法:

把DataTable的数据Copy出来,给每一个ComboBox的数据源。
例如:
DataTable tableSource ; 
//取数据 
ComboBox1.DataSource=tableSource.Copy(); 
ComboBox2.DataSource=tableSource.Copy(); 

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

DataTable绑定时:

多ComboBox同时面对一个对象

內存中實際上只是存儲了一份共用的DataSource(DataTable or DataSet)

解决:
把DataTable的数据Copy出来,给每一个ComboBox的数据源。
例如:
DataTable tableSource ; 
//取数据 
ComboBox1.DataSource tableSource.Copy(); 
ComboBox2.DataSource tableSource.Copy();  

List<T>泛型绑定时:

List<KqiPageSetupInfo> noColumnList =数据库得的值

//插入空选项

KqiPageSetupInfo setup = new KqiPageSetupInfo();
            setup.PageSetupid = "";
            setup.Title = "";
            noColumnList.Insert(0, setup);

解决:

           KqiPageSetupInfo[] noColum1 = noColumnList.ToArray();//复制一个对象数组
            this.combTitle.DisplayMember = "title";
            this.combTitle.ValueMember = "pageSetupid";
            this.combTitle.DataSource = noColum1;

            KqiPageSetupInfo[] noColum2 = noColumnList.ToArray();
            this.combKeyWord.DisplayMember = "title";
            this.combKeyWord.ValueMember = "pageSetupid";
            this.combKeyWord.DataSource = noColum2;


其他方法:http://www.cnblogs.com/xocean/archive/2011/01/14/combobox.html 

参考原文:http://hi.baidu.com/suralauto/blog/item/4f709df70c90962c730eec40.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在easyui中,可以通过设置combobox的data属性来绑定数据源。data属性可以是一个JavaScript数组,包含要显示在combobox中的数据。 以下是一个简单的示例代码,示例中的combobox数据源是一个包含“北京”、“上海”、“广州”和“深圳”的数组: ```javascript $('#mycombobox').combobox({ data: [ {value: '北京', text: '北京'}, {value: '上海', text: '上海'}, {value: '广州', text: '广州'}, {value: '深圳', text: '深圳'} ] }); ``` 在这个示例代码中,mycomboboxcombobox的id,data属性是一个数组,包含了要显示在combobox中的数据。数组中的每个元素都是一个对象,包含了value和text属性。value属性表示该选项的,text属性表示该选项在combobox中显示的文本。 如果需要从后台获取数据来绑定combobox,则可以使用easyui的远程数据绑定方法。在远程绑定中,需要指定combobox的url属性和valueField属性,url属性表示从后台获取数据的url,valueField属性表示数据源中每个选项的字段。 以下是一个远程数据绑定的示例代码,示例中的combobox数据源是从远程url中获取的: ```javascript $('#mycombobox').combobox({ url: 'data.php', valueField: 'id', textField: 'text' }); ``` 在这个示例代码中,mycomboboxcombobox的id,url属性表示从后台获取数据的url,valueField属性表示数据源中每个选项的字段,textField属性表示数据源中每个选项的文本字段。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值