XtraGrid 中如何实现 比如数据库是 M 则列显示男 数据库是F则显示女 这样的功能呢

时间:2022-02-08 20:28:28
XtraGrid 中如何实现 列显示的时候 比如数据库值是 M 则列显示男 数据库值是F则显示女 这样的功能呢

11 个解决方案

#1


没用过XtraGrid  可以在查询语句 select......case sex when 'M' then '男' when 'F' then '女' 
??

#2


在XtraGrid的CustomDrawCell事件中

 if (e.Column.VisibleIndex == 1)
            {
                e.DisplayText = Convert.ToInt32(e.CellValue) == 20 ? "0" : "1";
            }

#3


使用columnEdit选LookupEdit,你的M和F作为Valuemember,男女作为DisplayMember。是下拉选择的效果。

#4


引用 3 楼 davinciyxw 的回复:
使用columnEdit选LookupEdit,你的M和F作为Valuemember,男女作为DisplayMember。是下拉选择的效果。



这种模式是不是 M、F和男、女 要作为数据库字段有数据库对应的表

#5


该回复于2014-02-24 11:18:15被管理员删除

#6


引用 4 楼 ELSOFTEPMS 的回复:
Quote: 引用 3 楼 davinciyxw 的回复:

使用columnEdit选LookupEdit,你的M和F作为Valuemember,男女作为DisplayMember。是下拉选择的效果。



这种模式是不是 M、F和男、女 要作为数据库字段有数据库对应的表

不需要,数据库只存储M/F这一列。男女是给最终用户看的

#7


引用 6 楼 davinciyxw 的回复:
Quote: 引用 4 楼 ELSOFTEPMS 的回复:

Quote: 引用 3 楼 davinciyxw 的回复:

使用columnEdit选LookupEdit,你的M和F作为Valuemember,男女作为DisplayMember。是下拉选择的效果。



这种模式是不是 M、F和男、女 要作为数据库字段有数据库对应的表

不需要,数据库只存储M/F这一列。男女是给最终用户看的



高手你的意思我懂了 就是这里面的值该怎么来写?怎么个格式呢 ?我写的DisplayMember里面 "男";"女"  Valuemember里面填写的"M";"F" 发现不对 不知道什么格式 请高手赐教!

#8


var lookupEdit = new RepositoryItemLookUpEdit();
lookupEdit.Columns.AddRange(new []
{
new DevExpress.XtraEditors.Controls.LookUpColumnInfo("Value"),
new DevExpress.XtraEditors.Controls.LookUpColumnInfo("Disp"),
});
lookupEdit.ValueMember = "Value";
lookupEdit.DisplayMember = "Disp";
var dataSource = new DataTable();
dataSource.Columns.AddRange(new[]
{
new DataColumn("Value"),
new DataColumn("Disp"),
});
dataSource.Rows.Add(new object[] { "M", "男" });
dataSource.Rows.Add(new object[] { "F", "女" });
lookupEdit.DataSource = dataSource;

gridColumn7.ColumnEdit = lookupEdit;

你试试上面这段放到你的Load中。其中除了dataSource那段外,其他的其实都可以在设计器中操作。

#9


补充说明:
gridColumn7,也就是需要显示性别的列的FieldName需要和Grid的数据源(如DataTable)中的列名一致。

#10


还是通过SQL语句来控制吧,查到数据后就能直接显示了,转换麻烦。

#11


多谢 莱昂纳多达芬奇  很凑效!

#1


没用过XtraGrid  可以在查询语句 select......case sex when 'M' then '男' when 'F' then '女' 
??

#2


在XtraGrid的CustomDrawCell事件中

 if (e.Column.VisibleIndex == 1)
            {
                e.DisplayText = Convert.ToInt32(e.CellValue) == 20 ? "0" : "1";
            }

#3


使用columnEdit选LookupEdit,你的M和F作为Valuemember,男女作为DisplayMember。是下拉选择的效果。

#4


引用 3 楼 davinciyxw 的回复:
使用columnEdit选LookupEdit,你的M和F作为Valuemember,男女作为DisplayMember。是下拉选择的效果。



这种模式是不是 M、F和男、女 要作为数据库字段有数据库对应的表

#5


该回复于2014-02-24 11:18:15被管理员删除

#6


引用 4 楼 ELSOFTEPMS 的回复:
Quote: 引用 3 楼 davinciyxw 的回复:

使用columnEdit选LookupEdit,你的M和F作为Valuemember,男女作为DisplayMember。是下拉选择的效果。



这种模式是不是 M、F和男、女 要作为数据库字段有数据库对应的表

不需要,数据库只存储M/F这一列。男女是给最终用户看的

#7


引用 6 楼 davinciyxw 的回复:
Quote: 引用 4 楼 ELSOFTEPMS 的回复:

Quote: 引用 3 楼 davinciyxw 的回复:

使用columnEdit选LookupEdit,你的M和F作为Valuemember,男女作为DisplayMember。是下拉选择的效果。



这种模式是不是 M、F和男、女 要作为数据库字段有数据库对应的表

不需要,数据库只存储M/F这一列。男女是给最终用户看的



高手你的意思我懂了 就是这里面的值该怎么来写?怎么个格式呢 ?我写的DisplayMember里面 "男";"女"  Valuemember里面填写的"M";"F" 发现不对 不知道什么格式 请高手赐教!

#8


var lookupEdit = new RepositoryItemLookUpEdit();
lookupEdit.Columns.AddRange(new []
{
new DevExpress.XtraEditors.Controls.LookUpColumnInfo("Value"),
new DevExpress.XtraEditors.Controls.LookUpColumnInfo("Disp"),
});
lookupEdit.ValueMember = "Value";
lookupEdit.DisplayMember = "Disp";
var dataSource = new DataTable();
dataSource.Columns.AddRange(new[]
{
new DataColumn("Value"),
new DataColumn("Disp"),
});
dataSource.Rows.Add(new object[] { "M", "男" });
dataSource.Rows.Add(new object[] { "F", "女" });
lookupEdit.DataSource = dataSource;

gridColumn7.ColumnEdit = lookupEdit;

你试试上面这段放到你的Load中。其中除了dataSource那段外,其他的其实都可以在设计器中操作。

#9


补充说明:
gridColumn7,也就是需要显示性别的列的FieldName需要和Grid的数据源(如DataTable)中的列名一致。

#10


还是通过SQL语句来控制吧,查到数据后就能直接显示了,转换麻烦。

#11


多谢 莱昂纳多达芬奇  很凑效!