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

How do I set formatting for a dynamically added column in Infragistics WebDataGrid?

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

一切都有一个默认格式,在这种情况下,日期时间列就是 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 不能赋值,因为它是一个方法组。

这是从多个来源拼凑而成的,none 其中的内容完全符合我的要求。例如,一段示例代码总是假设有问题的列是第一列,所以我不得不添加 foreach 循环。

我看到很多人提到 BoundDataFieldDataFormatString,但我似乎无法真正找到如何访问它们。

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

谢谢!

我能够通过将 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}";
            }
        }

使用上面的信息,我能够让它工作。它更干净。它不需要循环:

TryCast(.Rows(0).Items.FindItemByKey("MyColumnName").Column, Infragistics.Web.UI.GridControls.BoundDataField).DataFormatString = "{0:G}"