首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
.NET技术
C#
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
关于DataGridView格式化逻辑值
[已结贴,结贴人:zixr365]
加为好友
发送私信
在线聊天
zixr365
zixr365
等级:
可用分等级:
长工
总技术专家分:
0
总技术专家分排名:
311804
揭帖率:
100.00%
发表于:
2008-08-20 09:33:10
楼主
数据库里面有一张表,性别字段char(1)型的,是用1表示男,0表示女。在绑定到DataGridView后,显示的仍然是0和1,请问如何能让程序判断数据为0的时候显示“女”,数据为1的时候显示为“男”呢?最好是可以直接在DataGridView的属性里设置。winform程序
问题点数:
20
回复次数:
6
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
peterb
基础的重要性!!! 去处浮躁 静,思,学!
等级:
可用分等级:
掌柜
总技术专家分:
3930
总技术专家分排名:
5193
发表于:
2008-08-20 09:40:43
1
楼 得分:
0
DataGridViewComboColumn列或者cellformat事件里面写代码
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
LockMyeye
罗克麦艾
等级:
可用分等级:
贫农
总技术专家分:
249
总技术专家分排名:
53875
发表于:
2008-08-20 09:44:34
2
楼 得分:
5
DataGridView使用虚拟模式。
如果是自动生成绑定列的,要先屏蔽原来的“性别”列。
创建新列,映射到“性别”
如
DataTable dtGender = new DataTable();
dtGender.Columns.Add("Value", typeof(string));
dtGender.Columns.Add("Display", typeof(string));
dtGender.Rows.Add(new object[] { "0", "男" });
dtGender.Rows.Add(new object[] { "1", "女" });
DataGridViewComboBoxColumn colGender = new DataGridViewComboBoxColumn();
colGender.DataSource = dtGender;
colGender.ValueMember = "Value";
colGender.DisplayMember = "Display";
colGender.DataPropertyName = "Gender";
colGender.Name = "GenderName";
colGender.HeaderText = "性别";
colGender.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
colGender.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colGender.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
colGender.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
colGender.SortMode = DataGridViewColumnSortMode.Automatic;
dgvJsydpb.Columns.Insert(5, colGender);
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
accomp
那一叹的怜惜
等级:
可用分等级:
贫农
总技术专家分:
489
总技术专家分排名:
36548
发表于:
2008-08-20 09:45:07
3
楼 得分:
0
<asp:Label ID="lblSex" runat="server" Text=' <%# int.Equals(Convert.ToInt32(DataBinder.Eval(Container, "DataItem.sex")),0)?"女":"男" %>'> </asp:Label>
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cftea
千一网络
等级:
可用分等级:
中农
总技术专家分:
1722
总技术专家分排名:
13380
发表于:
2008-08-20 09:46:16
4
楼 得分:
15
在 sql 语句中处理
sql = @"select 姓名, case 性别
when '0' then '女'
when '1' then '男'
else ''
end as 性别
from……
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
mobin4211
danny
等级:
可用分等级:
中农
总技术专家分:
608
总技术专家分排名:
28068
发表于:
2008-08-20 09:54:56
5
楼 得分:
0
参考一下
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Label lb = (Label)e.Row.FindControl("Label1");
int aa = Convert.ToInt32(lb.Text);
if (aa == 0)
{
lb.Text = " <img src='images/s_blue_1.gif' />";
}
else if (aa == 1)
{
lb.Text = " <img src='images/s_blue_2.gif' />";
}
else if (aa == 2)
{
lb.Text = " <img src='images/s_blue_3.gif' />";
}
else
{
lb.Text="";
}
}
}
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zixr365
zixr365
等级:
可用分等级:
长工
总技术专家分:
0
总技术专家分排名:
311804
发表于:
2008-08-20 12:25:22
6
楼 得分:
0
好多人都没有看清问题啊,我说了是WinForm啊,怎么还这么多给WebForm的啊,而且还用ComboBox列。我自己解决了,其实挺简单的,直接改变单元格里面的值就行了。代码我也贴出来。
private void FormatSex()
{
for (int i = 0; i < dataGridView1.RowCount; i++)
{
if (dataGridView1["Sex", i].Value.ToString() == "0")
{
dataGridView1["Sex", i].Value = "女";
}
else
{
dataGridView1["Sex", i].Value = "男";
}
}
}
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友