日期:2014-05-18 浏览次数:20776 次
private void dvg_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (dgvUser.Columns[e.ColumnIndex].Name.Equals("IntroState")) { foreach (DataGridViewRow dgv in dgvUser.Rows) { switch (e.Value.ToString()) { case "0": e.Value = "未填写"; e.CellStyle.BackColor = Color.Yellow; break; case "1": e.Value = "待审核"; e.CellStyle.BackColor = Color.Red; break; case "2": e.Value = "已通过"; e.CellStyle.BackColor = Color.Green; break; default: break; } } } }
------解决方案--------------------
up
------解决方案--------------------
ls的也行,但是起始用sql是不是更直接一点呢~
------解决方案--------------------
建议type字段使用DatagridViewComboBox
datasource可以是一个键值对.或是枚举(没试过枚举 请参考http://msdn.microsoft.com/zh-cn/library/y0wfd4yz.aspx)
valuemember就是数值
displaymember就是文字
DataPropertyName就是字段名.
------解决方案--------------------
点击控件 右上角有个箭头 点一下 里面有个编辑列 在里面选取你所需要的 编辑HeadText 就行了
------解决方案--------------------
推荐5楼的做法
------解决方案--------------------
支持下楼主
------解决方案--------------------
1.sql中case when可以搞
2.遍历取回来的datatable,修改其中的值也可以.
------解决方案--------------------
直接sql中case when多省事.
------解决方案--------------------
绘制单元格时都会发生CellFormatting事件的。
string stringValue = (string)e.Value;
获取了这个Value,进行简单的字符串处理就可以去掉空格
------解决方案--------------------
CellFormatting是个事件。。。可以+=一下~
------解决方案--------------------
去空格。。。.前后的话。。。Trim()?