Ответ 1
grid.Column(
"PublishDate",
"Published on",
format: (item) => string.Format("{0:dd-MMM-yyyy}", item.PublishDate)
)
У меня есть веб-сетка, и я не использую syncx бритвы. Я использую форму .aspx. код ниже;
<%
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". Любая идея, как это сделать?
grid.Column(
"PublishDate",
"Published on",
format: (item) => string.Format("{0:dd-MMM-yyyy}", item.PublishDate)
)
Если свойство DateTime определено как (может содержать 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)
В противном случае, если он определен ниже (не может быть 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)
Это работает для меня и допускает значения Null
grid.Column("End_Date",format: item => ((item.End_Date == null) ? "" : item.End_Date.ToString("MM/dd/yyyy"))),
Это сработало для меня:
grid.Column("Date_Of_Birth", "Date Of Birth", format: item => ((item.Date_Of_Birth == null) ? "" : item.Date_Of_Birth.ToString("MM/dd/yyyy")))