关于WinForm中的DataGridView控件显示数据字典的解决方案。
来源:互联网 发布:淘宝有哪些冷门的类目 编辑:程序博客网 时间:2024/06/08 00:17
做这部分功能的时候,上网搜索了很多资料,发现很少涉及到这方面的解决方案,找了相关的问题帖子,很多人都叫使用视图去处理,当然,用视图是可以解决这个问题,但是,这么多个表,都用视图去搞,那还得做这么多个视图...........这肯定不科学了。还有如果用视图去做,那么数据实体就与实际的表不一致了,所以,我们需要找到一个解决DataGridView的某个列需要按照某个字典的数据去展现数据。
我们在页面上显示这种字典数据的控件叫ComboBox,同样的,我们发现DataGridView中也可以把某列设置成ComboBox这样的方式,也就是DataGridViewComboBoxColumn列。下面是我实现DataGridView中的某列按照字典数据去展现数据的代码:
dtInfo = new DataGridViewComboBoxColumn();DataGridViewComboBoxColumn cbColumn = dtInfo as DataGridViewComboBoxColumn;cbColumn.DataSource= curDictionary.Details;cbColumn.DisplayMember = "DetailName";cbColumn.ValueMember = "DetailTagValue";
代码分析说明:创建DataGridViewComboBoxColumn列cbColumn,然后对该列设置字典数据源:cbColumn.DataSource= curDictionary.Details;,然后设置展现值的属性:cbColumn.DisplayMember = "DetailName";(把数据源中的DetailName信息显示在DataGridView中),设置显示值所对应的保存在数据库中的值:cbColumn.ValueMember = "DetailTagValue";这部分的代码与ComboBox控件的原理是一样的,因此,在DataGridView控件中显示字典数据与ComboBox显示字典数据的原理是一样的,难度并不大。
上面所描述的,仅仅是如何在DataGridView中展现字典数据,我们在做数据字典时往往还存在另外一个问题:那就是数据类型的问题,字典表通常为了适应更多的字典数据,一般情况下,我们的DetailTagValue是设置成字符串,但用到该字典数据的表,很多时候不是字符串的,是整形的值,在这时候,DataGridView就会报错,那是因为DetailTagValue的数据类型与DataGridView中对应的列的字段类型不一样引起的,为了解决这个问题,我们需要把DetailTagValue的值设置成object类型,下面我们看下DetailTagValue属性是怎么处理的:
/// <summary>DetailTagValue:属性标签值(保存在数据库中的值)</summary>public virtual object DetailTagValue{get { return pgConvert.GetObjectValueByDbType(dataType, detailTagValue); }set { detailTagValue = value; }}
赋值是直接赋值,获取值的时候,根据字段的类型来转换成目标对象的类型。这样转换后就不存在数据类型不匹配而引起的错误了。
原创作品出自努力偷懒,转载请说明文章出处:http://blog.csdn.net/kfarvid或 http://www.cnblogs.com/kfarvid/
- 关于WinForm中的DataGridView控件显示数据字典的解决方案。
- 关于C# Winform dataGridView显示时没有默认选中以及dataGridView添加DataTable中的数据
- 关于winform中Datagridview控件的分页
- Winform控件之DataGridView数据控件显示问题
- WinForm全屏显示DataGridView控件
- winform DataGridView 分页显示数据
- C#在WinForm中关于openfiledialog选定的数据插入到DataGridView中的代码
- WinForm中关于DataGridView控件的一些应用
- Winform控件之DataGridView数据控件(一)
- C# winform关于datagridview中的列的数据类型转换问题
- C#中使用DataGridView控件显示DataTable中的数据
- Winform中向DataGridView控件添加数据
- C# Winform datagridview中的数据不能显示,单击后才能显示出来
- winform开发,双击dataGridView中的一行数据,将数据读出显示。
- winform清空DataGridView中的数据
- 关于DataGridView显示数据问题。
- Winform带dataGridview的Combox控件
- WinForm中双击dataGridView的一行将其显示到另一个窗体的控件中
- Jenkins Build Pipeline View点击Job跳转到具体某个build中
- Nutch命令
- JPetStore5.0——项目配置过程记录
- 总结:.Net的C#移植到Cocoa Touch的Objective-C
- 双点弦截法迭代程序
- 关于WinForm中的DataGridView控件显示数据字典的解决方案。
- BIEE 11g 新特性Double Colunm案例一则 动态切换金额显示单位
- Difference between MRP vs MPS
- json字符串转换为Array or List
- 十招教你从程序员转向企业家
- Spring MVC 拦截器
- BIEE叙述图导航实例
- 百度地图API中,有GPS坐标转百度坐标的功能
- 用jquery 绑定一个按钮click事件后,第一次点击后,一切正常,第二次点击,竟然执行两次,以后越来越多