社区
C#
帖子详情
WinForm中DataGridView列的显示问题
yihis
2007-03-25 11:37:29
比如数据库里列保存的是“1”或“0”,我要显示“是”或“否”,我有一个方法string DataStringFormat(string getData)返回相应汉字字符的,请问如何设置DataGridView列应用这一方法,最好是设置方式而不是编码方式。
...全文
643
15
打赏
收藏
WinForm中DataGridView列的显示问题
比如数据库里列保存的是“1”或“0”,我要显示“是”或“否”,我有一个方法string DataStringFormat(string getData)返回相应汉字字符的,请问如何设置DataGridView列应用这一方法,最好是设置方式而不是编码方式。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yihis
2007-03-26
打赏
举报
回复
webform这样没错,但是winform我不知道该写在哪
wangkun9999
2007-03-26
打赏
举报
回复
自定义或绑定列都一样,反正都要在前台显示状态吗;
如果是多元的话可以在后台写个方法:
public string changstr(string test)
{
if(test=="1")
{
return "是";
}
if(test=="0")
{
return "否";
}
....(其它)
}
前台调用:
<%# changstr(Convert.ToString(DataBinder.Eval(Container.DataItem,"flag")))%>...
北京的雾霾天
2007-03-26
打赏
举报
回复
对,就是在CellFormatting事件里处理就可以了.
HSB19820706
2007-03-26
打赏
举报
回复
再加个表,转换下
yihis
2007-03-26
打赏
举报
回复
sql语句我曾经想过,但是不大可行,因为字段太多(64个),这样sql语句就太庞大了,而且由于是低版本的access,没办法用存储过程。项目追的很紧,暂时先这样对付一下,以后有时间再研究吧,谢谢大家。
BT9527
2007-03-26
打赏
举报
回复
学习
icwin
2007-03-26
打赏
举报
回复
mark
yumanqing
2007-03-26
打赏
举报
回复
我认为有几种方法:
1、查询语句用
select (case flag when 1 then '是' when 0 then '否' end) as Flag from table;
2.在程序加载数据的时候判断,替换,
leixueqiyi
2007-03-26
打赏
举报
回复
可以把该列设置成CheckBox列
/// <summary>
/// 設置datagridview中某個欄位為CheckBox
/// </summary>
/// <param name="iColumn">需要更改的欄位號</param>
public void SetCheckBoxColumns(int iColumn, string iColName)
{
this.dataGridView1.Columns.RemoveAt(iColumn);
DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn();
checkboxColumn = CreateCheckBoxColumn(iColName);
this.dataGridView1.Columns.Insert(iColumn, checkboxColumn);
}
/// <summary>
/// 取得datagridview中一個CheckBox欄位的屬性
/// </summary>
/// <returns>格式化以後的datagridview的CheckBoxColumn</returns>
public virtual DataGridViewCheckBoxColumn CreateCheckBoxColumn(string iCol)
{
DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
{
column.DataPropertyName = iCol;
column.ThreeState = false;
column.TrueValue = "Y";
column.FalseValue = "N";
column.HeaderText = ResourceFactory.GetMultilanguage(iCol);
}
return column;
}
liujia_0421
2007-03-26
打赏
举报
回复
最好的办法就是如楼主说的在CellFormatting事件中添加....
如果觉得效率低,这样行不行...即在从数据库中取出数据的时候设置一下...
for exampel:
select (case flag when 1 then '是' when 0 then '否' end) as Flag from table;
然后再绑定到DataGridView上即可..
yihis
2007-03-26
打赏
举报
回复
先说一下我现在的权宜之计,我是在CellFormatting事件里添加的
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
try
{
if (dataGridView1.Columns[e.ColumnIndex].HeaderText == "过荷保护")
{
if (e.Value.ToString() == "0")
{
e.Value = "状态0";
}
else if (e.Value.ToString() == "1")
{
e.Value = "状态1";
}
}
}
catch { }
}
虽然达到了我要的效果,但是表格数据一旦比较庞大,花费的时间就会成倍增加。我想要的就是类似web里面的那种方法,但是在winform里就不知道该如何去搞了
yihis
2007-03-25
打赏
举报
回复
比较急,在线等
yihis
2007-03-25
打赏
举报
回复
另外有可能是多元的,比如数据库里有个表示状态的字段,值为数字如: 1 2 3 4 ………… 绑定到datagridview显示时要跟据值改成:状态1 状态2 状态3 …………
yihis
2007-03-25
打赏
举报
回复
请问在哪个属性里更改?是自定义列还是绑定列?
wangkun9999
2007-03-25
打赏
举报
回复
用三元运算符,形如:
Bindvalue=="1"?"是":"否"
Winform
DataGridView
移动
列
Winform
DataGridView
移动
列
基于C#的
WinForm
中
DataGridView
控件操作汇总
基于C#的
WinForm
中
DataGridView
控件操作汇总
winform
基础
主讲内容第一讲
winform
课程介绍(完结)第二讲 Windows编程基础-hello world(完结)第三讲Windows编程基础-常用控件(完结)第四讲 多文档界面MDI处理和菜单组件(完结)第五讲 Windows控件-单选、复选、图片控件(完结)等
C#
winform
datagridview
中
显示
HTML内容
C#
winform
datagridview
中
显示
HTML内容,方便进行富文本
显示
。
C#
winform
datagridview
动态
列
值计算_
datagridview
动态
列
值计算_fairlyfl7_winf
C#
winform
datagridview
动态
列
值计算
C#
110,536
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章