使用@html.grid column.format 右对齐值

Right align values using @html.grid column.format

在 @html.grid().columns 集合中使用 columns.add() 时如何右对齐值?

@Html.Grid(Model.Unidades).Columns(columns => {
columns.Add()
    .Encoded(false)
    .Sanitized(false)
    .Titled("Volume")
    .RenderValueAs(o => CustomRenderingOfColumnVolume(o));
columns.Add(m => m.VolumeCorrigido)
    .Titled("Volume")
    .Format("{0:N4}")
    .Sanitized(false)
    .Encoded(false);
});

@helper CustomRenderingOfColumnVolume(Dto.ObjectDto item) { 
        <span style="text-align: right; width: 100%">@string.Format("{0:N2}", item.Volume)</span>
}

我已经试过了,没有成功: - 来自列对象的自定义 .toString(),但它不允许自定义格式 - 使用 .Format("{0,10}").SetWidth(30) 就像我们使用自定义字符串格式右对齐一样 - 使用@helper(参见上面的 CustomRenderingOfColumnVolume 代码) - 其他很多我现在想不起来了

我没有找到该组件的文档、教程、google 特定结果。我只需要一些东西来研究或右对齐列值的提示。对于@helper 中的列组件,我将不胜感激,甚至 CSS。

您可以将 class 应用于您的列:

columns.Add().Encoded(false).Sanitized(false).Titled("Volume").RenderValueAs(o => CustomRenderingOfColumnVolume(o)).Css("align-right");

然后在你的CSS中:

.align-right{text-align: right !important}

我的一个朋友发送了另一个解决方案,类似于@RahulSharma 所做的,但是没有使用@helper 既没有名为class 的css,只是来自列对象的方法:

<style>
    /*Simple css hack to right align text*/
    td[data-name='Volume'] {
        text-align: right;
    }
</style>

[...]
columns.Add(m => m.Volume)
    .Titled("Volume")
    .Format("{0:N4}")
    .Sanitized(false)
    .Encoded(false);
});

我都测试过并且效果很好。谢谢大家。