GridView绑定 动态生成的Datatable 如何在显示出DataColumn的Caption 100分求思路 顶者有分 必结贴
动态生成列
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中设置