日期:2014-05-18 浏览次数:20481 次
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中设置