****动态绑定datagrid的问题,急!急!!!100分****

meteor1234 2004-12-27 10:14:40
我用动态绑定datagrid(因为表的列不确定,可以动态添加),现在遇到的问题是:我想动态绑定的表有几列是id,但是想在客户端显示的是具体的名字(name),
比如:我要绑定的表(tab1)的列有:x,y,A_id,B_id…….其中A_id在tab2(列A_id,A_name)中,B_id在tab3(列B_id,B_name)中………………在datagrid上显示的是:x,y,A_name,B_name,…………请问怎么解决,请各位大虾帮指点!!!!,谢谢!!!

...全文
150 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tengjian1981 2004-12-27
  • 打赏
  • 举报
回复
动态创建DataGrid列
swiminfish_9999 2004-12-27
  • 打赏
  • 举报
回复
System.Collections.Hashtable ht = new Hashtable();
ht.Add("ID1","名称1");
ht.Add("ID2","名称2");
ht.Add("ID3","名称3");
this.c1FlexGrid1.Cols["ID"].DataMap = ht;

用哈西表是最简单的办法
hbzh1014 2004-12-27
  • 打赏
  • 举报
回复
如果只是简单的显示,调整Sql语句就可以
hanbingture 2004-12-27
  • 打赏
  • 举报
回复
string strSql="SELECT t1.x,t1.y,t2.A_name,t3.B_name
FROM Table1 t1 INNER JOIN Table2 t2
ON t1.A_id = t2.B_id
INNER JOIN Table3 t3 ON t1.B_id=t3.B_id;
DataAdapter da=new DataAdapter(strSql,connection);
DataSet ds=new DataSet();
da.Fill(ds);
DataGrid.DataSource=ds.Tables[0];
hawkalw 2004-12-27
  • 打赏
  • 举报
回复
下面这段代码也许对你有帮助,当时我是想一些列不显示但可取值,就这样加的,我估计你可以动态修改这些值达到你的效果。
dataGrid1.SetDataBinding(dataset1,table1);
dataGrid1.ReadOnly=true;
dataGrid1.TableStyles.Clear();
DataGridTableStyle ts1= new DataGridTableStyle();
DataGridTextBoxColumn TxtCol;

ts1.MappingName = "table1";
TxtCol=new DataGridTextBoxColumn();
TxtCol.MappingName="Cid" ;
TxtCol.HeaderText="编号" ;
TxtCol.Width=50;
TxtCol.NullText="";
TxtCol.ReadOnly=true;
ts1.GridColumnStyles.Add(TxtCol);

TxtCol=new DataGridTextBoxColumn();
TxtCol.MappingName="Name" ;
TxtCol.HeaderText="姓名" ;
TxtCol.Width=50;
TxtCol.NullText="";
TxtCol.ReadOnly=true;
ts1.GridColumnStyles.Add(TxtCol);

DataGridBoolColumn BoolCol=new DataGridBoolColumn();
BoolCol.MappingName="Sex" ;
BoolCol.HeaderText="性别" ;
BoolCol.Width=50;
BoolCol.ReadOnly=true;
ts1.GridColumnStyles.Add(BoolCol);

TxtCol=new DataGridTextBoxColumn();
TxtCol.MappingName="Birthday" ;
TxtCol.HeaderText="出生日期" ;
TxtCol.Width=100;
TxtCol.NullText="";
TxtCol.Format="yyyy-MM-dd";
TxtCol.ReadOnly=true;
ts1.GridColumnStyles.Add(TxtCol);
ts1.MappingName = "ArrayList";
meteor1234 2004-12-27
  • 打赏
  • 举报
回复
怎么没有人回答!!
jing_chen 2004-12-27
  • 打赏
  • 举报
回复
可以使用视图,把两个或多个表中中需要的列组合到一个视图中。
spring_504 2004-12-27
  • 打赏
  • 举报
回复
找一套.NET的控件需要GRID和DROPDOWN这两个控件就可以了,DROPDOWN的数据源数据库中存的ID和要显示的NAME,设置displaymember和valuemember,然后把这个控件动态的绑定到GRID上要显示的列上!
meteor1234 2004-12-27
  • 打赏
  • 举报
回复
我的datagrid的列是不定的,可以增加。我看上面各位仁兄的方法似乎对增加的列不起作用。请再给点建议,谢谢!!
alexxzr 2004-12-27
  • 打赏
  • 举报
回复
看看先

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧