问题描述
先看代码:DataTabledt=newDataTable();for(inti=0;i<textname.length-1;i++)//textname是一个字符串数组{//myClass是自定义的一个类,返回DataTable类型;函数GetTable是根据参数textname数据组的值(字段名)//来获取表中某一列,//将此列返回到t1中,即t1中只有字段名为"textname[i]"的列。t1=myClass.GetTable(Field[i].ToString());BindColumnbc=newBindColumn();bc.DataField=textname[i].ToString();DataGrid1.Columns.Add(bc);DataGrid1.DataSource=t1;DataGrid1.DataBind()}我想实现的功能是,通过不同的textname[i]来动态生成i个DataTable,即i个t1,每次循环的时候都将t1做为DataGrid的数据源,也就是说DataGrid最终于显示应该为i列。但是显示效果为:DataGrid是显示了i列,但是每一列的数据相同,为最后一列的数据。请问我的程序问题出在哪啊?
解决方案
解决方案二:
DataTabledt=newDataTable();for(inti=0;i<textname.Length;i++){DataColumnscon=newDataColumn(i.ToString());dt.Columns.Add(con);}this.DataGrid1.DataSource=dt;this.DataGrid1.DataBind();我的方式是先把table构建好。然后直接绑定。你看看是否可以。
解决方案三:
DataTabledt=newDataTable();for(inti=0;i<textname.Length;i++){DataColumnscon=newDataColumn(textname[i].ToString());dt.Columns.Add(con);}this.DataGrid1.DataSource=dt;this.DataGrid1.DataBind();
解决方案四:
mark
解决方案五:
你前面的一些程序我就不说了但是这两行DataGrid1.DataSource=t1;DataGrid1.DataBind()必须放到循环完毕之后才能执行的