日期:2014-05-18 浏览次数:20572 次
DataTable dt = new DataTable();
foreach (var i in subitem) //动态构造表结构 {
DataColumn col = new DataColumn();
col.DataType = typeof(string);
col.Caption = i.SubItemName; //显示的列名称
col.ColumnName = i.SubItemID.ToString(); // 列主键
dt.Columns.Add(col);
}
DataRow dr = dt.NewRow(); //添加一行数据
foreach (var p in List<ent>)
{
dr[p.SubItemID.ToString()] = p.Value; //根据列主键 赋值
}
DataTable dt = new DataTable();
//创建表头
dt.Columns.Add("aaa", typeof(string));
dt.Columns.Add("bbb", typeof(string));
//添加数据
DataRow dr;
dr = dt.NewRow();
dr[0] = "123";
dr[1] = "456";
dt.Rows.Add(dr);
GridView1.DataSource = dt;
GridView1.DataBind();
------解决方案--------------------
<asp:GridView ID="gridview" runat="server" AutoGenerateColumns="false" >
<Columns>
<asp:BoundField DataField="caption" headerText="Caption"/>
</Columns>
</asp:GridView>
------解决方案--------------------
没看清问题所在!
GridView绑定table列名似乎只能是ColumnName,
要显示Cation好像不能使用GridView,直接循环table:
for (int i = 0; i < dt.Columns.Count; i++)
{
Response.Write(dt.Columns[i].Caption.ToString() + " ");
}
------解决方案--------------------
你单独设置 GridView 的 HeaderRow 为 Caption
或者在RowDataBind中设置