• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

怎么才能使datagrid得某一列显示的值与实际值不一样?我是说我从数据库中提取的值与在datagrid要显示的值不一样。

zxggwan 2003-12-22 03:53:27
怎么才能使datagrid得某一列显示的值与实际值不一样?我是说我从数据库中提取的值与在datagrid要显示的值不一样。
请分别提供使用字典表与不用字典表的方法~!~!如果不用字典表的话是不是就要用数组来保存显示数据与数据库的值呢?〉?〉〉〉〉
...全文
21 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zxggwan 2004-01-17
怎么反回来啊
回复
zxggwan 2003-12-24
up
回复
yanyl2001 2003-12-24
sz
回复
jsljy 2003-12-24
把原来绑定id那个列,改成绑定一个函数,传的参数是id。那个函数是会根据这个id去数据库里取出对应的名字,再把这个名字反回来,就可以了
回复
lar99 2003-12-24
from A,B
回复
lar99 2003-12-24
用sql写个就是了,select A.id,B.name where A.id=B.id
回复
botao2690 2003-12-24
实际上是不是显示的Text和Value分别赋值,up
回复
zxggwan 2003-12-24
up
回复
老刘 2003-12-23
你的意思是用别名吗?
回复
Vicart 2003-12-23
你可以参考微软的例子:
public class DataGridCRTextBoxColumn:DataGridTextBoxCellColumn
{
protected override object GetColumnValueAtRow(CurrencyManager source,int rowNum)
{
object val = base.GetColumnValueAtRow(source,rowNum);
if( val.GetType() == Type.GetType("DBNull"))
{
return String.Empty; // string to display for DBNull
}
else
{
Decimal tmp = (Decimal)TypeDescriptor.GetConverter(Type.GetType("Decimal")).ConvertFrom(val);//.ConvertFromString(val.ToString());
if(tmp>=0)
return tmp.ToString("0.00");
else
return (-tmp).ToString("0.00")+"CR";
}
}
protected override bool Commit(CurrencyManager dataSource,int rowNum)
{
// parse the date and write to underlying record.

base.HideEditBox();//return focus to the DataGrid control
DataGridTextBox cell = base.TextBox as DataGridTextBox;
Decimal val;

// Do not write data if not editing.

if( cell.IsInEditOrNavigateMode) return true;
if( base.TextBox.Text == "") // I map "" to DBNull
base.SetColumnValueAtRow(dataSource,rowNum,DBNull.Value);
else
{
try
{
if(base.TextBox.Text.ToUpper().EndsWith("CR"))
val = - Decimal.Parse(base.TextBox.Text.Substring(0,base.TextBox.Text.Length-2));
else
val = Decimal.Parse(base.TextBox.Text);

base.SetColumnValueAtRow(dataSource,rowNum,val);

}
catch
{
return false; // Exit on error and display old "good" value
}
}

base.EndEdit(); // Let the DataGrid know that processing is completed.
return true; // Success
}

}
回复
zxggwan 2003-12-23
up
回复
zxggwan 2003-12-23
up
回复
ProgramPig 2003-12-23
那最好还是改SQL语句吧
回复
zxggwan 2003-12-23
我的意思是使用字典表,比如说这个表里只有用户的id而在datagrid中显示的时候要显示用户的姓名,在另一个表里有用户id和姓名字段
回复
yunhi 2003-12-22
会不会是你从数据库提取数据的Sql语句或者存储过程有问题?
回复
nuptrxy 2003-12-22
用boundcolumn对象试试
回复
zxggwan 2003-12-22
刚才看了一下listbox好像可以,但是放到摸板列中好像不能直接榜定
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2003-12-22 03:53
社区公告
暂无公告