使用ASP.NET Web窗体。
我将DataView数据绑定到DataGrid,并将AutoGenerateColumns设置为true。
DataView的最后一列未呈现。
使用调试器我可以看到该列肯定存在于数据网格的数据源中。 该列的类型为decimal,列中的某些行包含数据。 该列具有列名。
其他列正常呈现。
发生了什么事?
更多信息
有趣的是,我可以将AutoGenerateColumns设置为false,然后只需手动添加列:
datagrid.Columns.Clear();
foreach(DataColumn column in dataView.Table.Columns)
{
datagrid.Columns.Add(new BoundColumn {
HeaderText = column.ColumnName });
}
datagrid.DataSource = dataView;
这很好用。为什么.NET不能使用AutoGenerateColumns执行此操作?
答案 0 :(得分:0)
我使用网格视图做类似的事情。你在设置数据字段吗?看起来不像。
for (int i = 0; i < QueryObject.QuerySelectFields.Count; i++)
{
BoundField c = new BoundField();
if (QueryObject.QuerySelectFields[i].DescriptionColumnName != null)
c.DataField = QueryObject.QuerySelectFields[i].DescriptionColumnName;
else
c.DataField = QueryObject.QuerySelectFields[i].ColumnName;
c.HeaderText = QueryObject.QuerySelectFields[i].Description;
c.ItemStyle.Wrap = false;
c.SortExpression = c.DataField;
gvResults.Columns.Add(c);
}