如何实现在datagridtextboxcolumn中的值0显示为“男”,1显示为“女”的方法
假如我有一个datagrid控件,有一列叫做"sex",对应的数据集内容是(0或者1),如果我想让运行后
显示出来的效果是男(1对应“男”),女(0对应“女”)的效果该如何实现呢?谢谢!
问题点数:20、回复次数:12Top
1 楼hamadou(闵峰--为了理想而奋斗)回复于 2005-01-22 17:01:19 得分 0
看过一些帖子是提示重写GetColumnValueAtRow的,但效果并不好,而且读出来的该列的值根本就没有直接显示为男或女。Top
2 楼lgw035644()回复于 2005-01-22 17:13:29 得分 2
建一个视图,在视图中根据数据集内容的(0或者1)加如JSexTxt字段,并在datagrid中加该列(mappingname为JSexTxt)Top
3 楼hamadou(闵峰--为了理想而奋斗)回复于 2005-01-22 17:21:22 得分 0
lgw035644() :哦,你的意思是说新建立一列,该列参看sex列的值,如果为1就显示“男”,否则就是女,然后将sex列隐藏,是 吗?
那么,如果新增的列呢??? 这个时候sex列的值为默认的”1“ 或”0“吗?
还有其他的方法吗????Top
4 楼bmiracle()回复于 2005-01-22 17:26:09 得分 2
写个方法吧
public string test(string sex)
{
string mysex = "女";
if(sex=="1")
{
mysex = "南";
}
return mysex;
}
<%# test(dataBinder.Eval(Container.DataItem,item))%>
大概是这个思路,试试吧。
Top
5 楼lgw035644()回复于 2005-01-22 17:37:21 得分 2
sex的值只有1或0,所以对应新建的列只有男或女。
sex列不需要做隐藏,只在datagrid没有这列(datagridtextboxcolumn)就可以了Top
6 楼LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^)回复于 2005-01-23 10:54:08 得分 5
http://dotnet.aspx.cc/ShowDetail.aspx?id=F73EF6AD-6878-4748-B963-5181252E5AEDTop
7 楼wqjch(阿泥)回复于 2005-01-23 11:03:05 得分 5
如果只是显示而不编辑的话可以写一个视图吧
create view dd as
select name,
( when sex
case '0'
'男'
case '1'
'女' ) as jSex
from person
用case结构就可以写吧
case结构我忘了可能是这样吧
Top
8 楼hamadou(闵峰--为了理想而奋斗)回复于 2005-01-24 09:11:36 得分 0
那如果要允许改动呢??Top
9 楼JafyLiu(自由的代价)回复于 2005-01-24 09:17:15 得分 2
在ItemBound内直接改得了,其它什么也不用动。判断cell.text是"0"或"1"重写一下。Top
10 楼lbh119()回复于 2005-01-24 09:32:24 得分 2
select (case sex when '0' then '男' when '1' then '女' end) as cn_sex
from personTop
11 楼wuyazhe(wyz&xyl)回复于 2005-01-24 09:35:01 得分 0
upTop
12 楼yuchun0607(yuchun0607)回复于 2005-01-24 09:52:46 得分 0
gzTop




