Ответ 1
Если вы хотите отобразить формат даты и времени в сетке кендо, сделайте это,
.Format("{0:dd/MM/yyyy}")
Или
builder.ToString("dd/MM/yyyy");
Я хочу создать сетку интерфейса Kendo с датой даты dd//MM/yyyy. Однако все вопросы, которые я нашел об этом, были разрешены с помощью кода Format ( "{0: d}" );. Итак, я пробовал как код ниже:
GridBoundColumnBuilder<TModel> builder = par.Bound(field.Name);
switch (field.Type.Type)
{
case CType.Boolean:
builder = builder.ClientTemplate(string.Format("<input type='checkbox' #= {0} ? checked='checked' : '' # disabled='disabled' ></input>", field.Name));
break;
case CType.Datetime:
builder = builder.Format("{0:d}");
break;
case CType.Decimal:
case CType.Double:
builder = builder.Format("{0:0.00}");
break;
}
Другие форматы прекрасно работают, просто DateTime не работает.
У меня был этот результат для Datetime =/Date (1377020142000)/
Если вы хотите отобразить формат даты и времени в сетке кендо, сделайте это,
.Format("{0:dd/MM/yyyy}")
Или
builder.ToString("dd/MM/yyyy");
.Format("{0:" + System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern + "}");
В System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat могут быть некоторые другие опции, которые могут работать для вас, если это не то, что вы хотите.
Другие решения были близки, но без сигары... Вот что сработало для меня:
columns.Bound(c => c.CreatedDate).ClientTemplate("#= kendo.toString(kendo.parseDate(CreatedDate), 'dd/MM/yyyy') #");
Можно также использовать:
columns.Bound(c => c.DateCreate).Format("{0:G}")
Как в http://docs.telerik.com/kendo-ui/framework/globalization/dateformatting
Попробуйте вместо этого, это сработает.
.ClientTemplate("#= kendo.toString(kendo.parseDate(Date,'dd/MM/yyyy'), '" + CurrentDateFormat + "') #");
Я не знаю о пользовательском интерфейсе Kendo, но мне кажется, что вы хотите передать строчную отформатированную дату, а не объект DateTime.
Выход /Date(...)/
выглядит как дата форматирования JSON из .Net.
Я бы преобразовал дату в строку, используя somthing like myDateTime.ToString("dd/MM/yyyy");
, прежде чем передать ее в элемент управления.
Основная проблема хорошо документирована здесь. Объединив ответы там с другими вещами, я нашел здесь, что мне нужно было сделать, чтобы заставить его работать над моим проектом.
В коде С#:
.Template("#= kendo.toString(parseDate(" + field.Name + "), 'dd/MM/yyyy') #");
Затем создайте функцию javascript:
function parseDate(d) {
d = new Date(parseInt(d.replace(/\/Date\((-?\d+)\)\//gi, "$1"), 10));
return d;
}
Это немного kluge, но работает.