Сетка пользовательского интерфейса Telerik MVC, привязанная к Ajax, не использует DisplayTemplate

Как получить сетку пользовательского интерфейса Ajax Bound Telerik MVC для отображения формата или чего-либо еще из шаблона отображения?

Глядя на их пример здесь, я вижу, что сетка показывает " Цена за единицу» с символом валюты. Глядя на код Razor ниже, я вижу, что сетка привязана к ajax. К сожалению, мы не можем видеть ViewModel, но свойство «Цена за единицу» не может быть уже отформатированной строкой, поскольку нажатие кнопки редактирования показывает числовое текстовое поле. Я создал EditorTemplates и DisplayTemplates, и почему-то работают только шаблоны редактора.

Моя ViewModel выглядит примерно так:

[UIHint("MoneyTemplate")]
public decimal ItemPrice { get; set; }

Где MoneyTemplate — это имя шаблонов Display и Editor Views/Shared/DisplayTemplates/MoneyTemplate.cshtml и Views/Shared/EditorTemplates/MoneyTemplate.cshtml соответственно.

Когда появляется сетка, шаблон отображения не подхватывается, а шаблон редактора?!? Выглядеть так

введите здесь описание изображения

Как они заставили символ валюты отображаться без шаблона на стороне клиента? Почему мой шаблон отображения не принимается?


person Bokoskokos    schedule 16.12.2014    source источник


Ответы (1)


После прочтения этой документации Я обнаружил, что ответ заключается в использовании атрибута DisplayFormat:

[UIHint("MoneyTemplate")]
[DisplayFormat(DataFormatString = "{0:C}")]
public decimal ItemPrice { get; set; }

Это приведет к тому, что в сетке будет отображаться десятичная дробь как денежная единица, а для редактирования будет использоваться шаблон редактора «MoneyTemplate».

person Bokoskokos    schedule 16.12.2014