如何在Infragistics WebDataGrid中为动态添加的列设置格式?

时间:2016-07-28 15:02:13

标签: c# asp.net infragistics webdatagrid

我目前正在使用使用Infragistics WebDataGrid控件编写的实用程序。该工具允许用户从下拉列表中选择一个表,此时它运行存储过程以从SQL Server获取数据,然后将其绑定到网格。

所有内容都获得默认格式,在这种情况下,datetime列只是MM/DD/YYYY。请求至少包含其中一列的时间组件。

经过多次搜索,我试图将代码添加到网格的_InitializeRow事件处理程序中,但我似乎无法将其完全正确。以下是我的想法:

if (e.Row.Index == 0)
{
    foreach (GridRecordItem field in e.Row.Items)
    {
        if (field.Column.Key == "InsertedOnCC")
            field.Column.FormatValue = "{0:g}";
    }
}

这给了我一个错误,FormatValue无法分配值,因为它是一个方法组。

这是从几个来源拼凑而成的,其中没有一个完全符合我的想法。例如,一段示例代码总是假设有问题的列是第一列,因此我必须添加foreach循环。

我已经看到很多关于BoundDataFieldDataFormatString的提及,但我似乎无法真正找到如何访问这些内容。

注意:我实际上是一名SQL开发人员,而不是C#开发人员,所以请保持温和。 :)

谢谢!

1 个答案:

答案 0 :(得分:2)

我能够通过将Column转换为BoundDataField然后使用DataFormatString来解决这个问题:

        if (e.Row.Index == 0)
        {
            foreach (GridRecordItem gri in e.Row.Items)
            {
                BoundDataField field = gri.Column as BoundDataField;

                if (field.Key == "InsertedOnCC")
                    field.DataFormatString = "{0:g}";
            }
        }