****动态绑定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,…………请问怎么解决,请各位大虾帮指点!!!!,谢谢!!!

...全文
123 点赞 收藏 10
写回复
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日
看看先
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告