2011-09-06 59 views
14

我有一個網格,我沒有使用剃鬚刀syntex.Rather我使用.aspx形式。代碼如下: ;如何在mvc網格中格式化日期

<% 
    var grid = new WebGrid(Model,defaultSort:"PublishDate",rowsPerPage:10); 
    %> 
    <%: 
     grid.GetHtml(
          tableStyle: "wGrid", 
          headerStyle: "wGridHeader", 
        alternatingRowStyle: "alt", 
        columns: grid.Columns(
        grid.Column("Title", canSort: false), 
        grid.Column("PublishDate", "Published on"), 
        grid.Column("CategoryName", "Category"), 
        grid.Column(format: (item) => Html.ActionLink("Details", "Browse", new { id = item.Title })) 
       ) 
       ) 
    %> 

現在我想將'PublishDate'列的格式設置爲'dd-MMM-yyyy'。 任何想法如何做到這一點?

回答

34
grid.Column(
    "PublishDate", 
    "Published on", 
    format: (item) => string.Format("{0:dd-MMM-yyyy}", item.PublishDate) 
) 
+0

:) cool..it是如此simple..thanks花花公子。 – kandroid

5

這對我的作品,並允許空值

grid.Column("End_Date",format: item => ((item.End_Date == null) ? "" : item.End_Date.ToString("MM/dd/yyyy"))), 
+0

如果你有空值,這個效果很好。 – Crismogram

10

如果日期時間屬性定義爲(可能包含null):

public DateTime? WorkedDate { get; set; } 

使用此格式:

grid.Column("WorkedDate", "Last Worked On", 
    format: (item) => item.WorkedDate != null 
    ? item.WorkedDate.ToString("MM/dd/yy") : "", canSort: true) 

否則,如果它被定義爲bel ow(不能爲null),它將有實際日期或.MinDate作爲默認值。

public DateTime WorkedDate { get; set; } 

使用格式:

grid.Column("WorkedDate", "Last Worked On", 
    format: (item) => item.WorkedDate != DateTime.MinValue ? 
    item.WorkedDate.ToString("MM/dd/yy") : "", canSort: true) 
0

這爲我工作:

grid.Column("Date_Of_Birth", "Date Of Birth", format: item => ((item.Date_Of_Birth == null) ? "" : item.Date_Of_Birth.ToString("MM/dd/yyyy")))