Подтвердить что ты не робот

Формат DateTime в сетке пользовательского интерфейса Kendo с использованием asp.net MVC Wrapper

Я хочу создать сетку интерфейса 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)/

4b9b3361

Ответ 1

Если вы хотите отобразить формат даты и времени в сетке кендо, сделайте это,

.Format("{0:dd/MM/yyyy}") 

Или

builder.ToString("dd/MM/yyyy");

Ответ 2

.Format("{0:" + System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern + "}");

В System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat могут быть некоторые другие опции, которые могут работать для вас, если это не то, что вы хотите.

Ответ 3

Другие решения были близки, но без сигары... Вот что сработало для меня:

columns.Bound(c => c.CreatedDate).ClientTemplate("#= kendo.toString(kendo.parseDate(CreatedDate), 'dd/MM/yyyy') #");

Ответ 5

Попробуйте вместо этого, это сработает.

.ClientTemplate("#= kendo.toString(kendo.parseDate(Date,'dd/MM/yyyy'), '" +  CurrentDateFormat + "') #");

Ответ 6

Я не знаю о пользовательском интерфейсе Kendo, но мне кажется, что вы хотите передать строчную отформатированную дату, а не объект DateTime.

Выход /Date(...)/ выглядит как дата форматирования JSON из .Net.

Я бы преобразовал дату в строку, используя somthing like myDateTime.ToString("dd/MM/yyyy");, прежде чем передать ее в элемент управления.

Ответ 7

Основная проблема хорошо документирована здесь. Объединив ответы там с другими вещами, я нашел здесь, что мне нужно было сделать, чтобы заставить его работать над моим проектом.

В коде С#:

.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, но работает.