如何为webgrid列帮助器创建自定义格式?

时间:2015-07-02 02:02:49

标签: c# asp.net-mvc

我需要在我的webgrid助手中创建自定义format。我试着这样做,但是没有用。

    if (fieldType == FieldType.Currency && format == null)
        format = x => string.Format(CultureInfo.CurrentCulture, "$ {0}", x.ReductionValue);

    this.Columns.Add(new GridColumn()
    {
        ColumnName = columnName,
        Header = displayName,
        Format = format,
        Style = styleColumn,
        CanSort = canSort
    });

我需要的结果是:

$ myValue例如:$ 1.000,00

我该怎么做?

1 个答案:

答案 0 :(得分:1)

当我尝试格式化webgrid的列时,我有同样的疑问。

我是这样做的,我认为你想要这样做:

public void AddCurrencyColumn(Expression<Func<T, decimal?>> expression)
        {
            Func<T, decimal?> compiledExpression = expression.Compile();
            this.Columns.Add(new WebGridColumn()
            {
                ColumnName = "Id",
                Header = string.Empty,
                Format = (item) => string.Format(System.Globalization.CultureInfo.CurrentCulture, "$ {0}", compiledExpression(item.Value)),
                Style = "currency-webgrid-column"
            });
        }

如您所见,我编译了表达式,然后将其与模型一起使用以获取属性值。

如果您想做更通用的事情,请将类型decimal?替换为通用类型,并在执行您想要执行的操作之前对其进行验证。

也许你已经解决了你的问题,但是,也许它可能有助于其他人。