数据绑定到DataGrid(或RadGrid)时DataView中的列不呈现

时间:2010-09-07 06:51:54

标签: asp.net datagrid webforms

使用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执行此操作?

1 个答案:

答案 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);
}