我目前正在使用使用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
循环。
我已经看到很多关于BoundDataField
和DataFormatString
的提及,但我似乎无法真正找到如何访问这些内容。
注意:我实际上是一名SQL开发人员,而不是C#开发人员,所以请保持温和。 :)
谢谢!
答案 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}";
}
}