http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 14327|回复: 7

[Winform] radiobutton 3个以上按钮,多值如何绑定

[复制链接]
发表于 2014-3-21 13:39:09 | 显示全部楼层 |阅读模式
radiobutton.jpg
[size=14.44444465637207px]

如图,3个radiobutton  对应 表字段 的三个值,写入数据好办,一个方法,然后判断一下再插入到数据库即可,那在查询读取的时候,如何动态绑定给3个radiobutton呢。


[size=14.44444465637207px]类似如下的语法 只能绑定给 ComboBox,
[size=14.44444465637207px]            water.DataBindings.Clear();
[size=14.44444465637207px]            water.DataBindings.Add("Text", bindingSource1, "water");

[size=14.44444465637207px]求助大神提供思路解决类似绑定的问题。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2014-3-21 13:41:51 | 显示全部楼层
呼叫 @苏飞  大神。
发表于 2014-3-21 17:22:31 | 显示全部楼层
lovebeyond 发表于 2014-3-21 13:41
呼叫 @苏飞  大神。

这个可以为每个控件指定一个字段吧。分多个字段存储,查询时为每个控件分析一个列,这样就能动态
 楼主| 发表于 2014-3-24 11:01:00 | 显示全部楼层
解决了,
Case when  text2='Y' then 'True' else 'False' end  radiobutton1, Case when  text2='N' then 'True' else 'False' end  radiobutton2,Case when  text2='0' then 'True' else 'False' end  radiobutton3,
一列值 用 case when 去判断获取3种结果 分别绑定给 radiobutton。
发表于 2014-3-24 11:19:40 | 显示全部楼层
lovebeyond 发表于 2014-3-24 11:01
解决了,
Case when  text2='Y' then 'True' else 'False' end  radiobutton1, Case when  text2='N' then ...

恩 这也是一种方案,还有一种你也可以参考下
http://www.sufeinet.com/thread-7021-1-1.html
 楼主| 发表于 2014-3-24 13:36:54 | 显示全部楼层
非常感谢你帮了我的大忙,真的太感谢你啦!

但是,接下来又有一个问题了。

radioButton1.DataBindings.Clear();
            radioButton1.DataBindings.Add("Checked", bindingSource1, "radioButton1");
  我在WinForm 填充bindingSource1,再绑定给radiobutton.
在业务逻辑事件:
  创建新数据时,调用 this.bindingSource1.AddNew() 方法去添加新数据,却发现 异常。

  未处理 System.InvalidOperationException
  Message=添加到 BindingSource 的列表中的所有对象必须是同一类型。


  这个错误是我添加下面这事件爆出来的
   private void bindingSource1_AddingNew(object sender, AddingNewEventArgs e)
        {
           e.NewObject = new Object();
        }

  这个事件本来是可以省略的,原因是 在绑定数据,需要增加新行的时候,正常用AddNew() 方法,会清空掉控件里的数据,并且 bindingSource1.Count.ToString() 会 + 1,但是 绑定了radiobutton后,控件里的数据并不会清空,我这才发现 AddNew()  有异常了,于是 主动用 AddingNew 去报错。
  这个有无好的解决办法啊!
发表于 2014-3-24 14:04:34 | 显示全部楼层
lovebeyond 发表于 2014-3-24 13:36
非常感谢你帮了我的大忙,真的太感谢你啦!

但是,接下来又有一个问题了。

手动清空控件,然后得新绑定,不要使用Add,或者是你直接查出来数据,不绑定,根据值,设置相应的值,比较好 一些,系统自带的功能有限,我是没怎么用过,都是自己写,根据值进行设置
 楼主| 发表于 2014-3-24 14:17:51 | 显示全部楼层
radioButton1.DataBindings.Clear();
            radioButton1.DataBindings.Add("Checked", bindingSource1, "radioButton1",true);
查了资料,后面 加true 就搞定了
1)formattingEnabled(属性FormattingEnabled)
    true,Binding对象自动在数据源类型和控件要求的类型间进行转换
    false,反之
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-19 12:37

© 2014-2021

快速回复 返回顶部 返回列表