如何格式化自动生成的WebGrid日期列

时间:2017-06-08 09:42:08

标签: c# asp.net-mvc datetime formatting webgrid

我看到有很多答案提示如何单独格式化DateTime WebGrid列,但是是否可以将WebGrid设置为自动格式化{{1}类型的所有列1}}?

我问,因为我的DateTime会自动从我的类中提取数据,因此我实际上从未真正访问WebGrid,因为我正在使用(尝试)通用{{1}查看:

webgrid.Column

WebGrid看起来像这样:

@model IEnumerable<MVCQCPage.Helpers.IGriddable>

@{
    var grid = new WebGrid(new List<object>());
    var linkPrefix = string.Empty;
    var selectable = false;

    if (Model.Count() > 0)
    {
        string[] columnNames = { };

        var firstItem = Model.First();

        linkPrefix = firstItem.RowLinkPrefix;
        columnNames = firstItem.ColumnHeaders;
        selectable = firstItem.Selectable;

        grid = new WebGrid(Model,
            rowsPerPage: 100,
            columnNames: columnNames);
    }
}
<div id="grid">
    @grid.GetHtml(
            tableStyle: "table",
            alternatingRowStyle: "alternate",
            headerStyle: "header"
        )
</div>

因此,实现它的每个类都可能包含以下内容:

IGriddable

我尝试在public interface IGriddable { string RowLinkPrefix { get; } string[] ColumnHeaders { get; } bool Selectable { get; } } 属性中添加public string[] ColumnHeaders { get; } = new string[] { "SampleNo", "QCDate", "StatusClerk", "StatusSupervisor" }; public string RowLinkPrefix { get { return $"/receiving/{Pallet.Grv.GRVNo}/{Pallet.PalletSeq}/"; } } public bool Selectable { get; } = true; ,但这没有用。

非常感谢任何帮助或建议,谢谢!

1 个答案:

答案 0 :(得分:0)

我设法通过修改我的属性来解决这个问题:

public DateTime QCDate { get; set; }
public string Date { get { return QCDate.ToString("dd/MM/yyyy"); } } 

ColumnHeaders更改为

public string[] ColumnHeaders { get; } = new string[] { "SampleNo", "Date", "StatusClerk", "StatusSupervisor" };

因此,当此项目显示在网格中时,它现在将显示我需要的短日期字符串。