[英]How do I set formatting for a dynamically added column in Infragistics WebDataGrid?
我目前正在使用使用 Infragistics WebDataGrid 控件编写的实用程序。 该工具允许用户从下拉列表中选择一个表,然后运行存储过程从 SQL Server 获取数据,然后将其绑定到网格。
一切都有一个默认格式,在这种情况下,日期时间列只是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# 开发人员,所以请保持温和。 :)
谢谢!
我能够通过将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}"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.