Как мне преобразовать логическое значение из true / false в yes / no в Telerik ASP.Сетка NET MVC

#asp.net #asp.net-mvc #data-binding #telerik

#asp.net #asp.net-mvc #привязка к данным #telerik

Вопрос:

Я хотел бы иметь возможность изменять отображаемое значение не редактируемого столбца в не редактируемой сетке Telerik AJAX в ASP.NET MVC. Рассматриваемый столбец является логическим значением, поэтому преобразование отображения будет Yes = true и No-False.

Ответ №1:

Я немного поэкспериментировал и обнаружил, что это работает. Не уверен, что оно будет сохранено в редактируемом столбце, но в моем случае столбец недоступен для редактирования.

 <% Html.Telerik().Grid<SomeClass>()
   .Name("SomeGrid")
   .Columns(columns =>
   {
      columns.Bound(o => o.ReportingPeriodShortDescription);
      columns.Bound(o => o.Closed)
          .ClientTemplate("<#=Closed ? 'Yes' : 'No' #>")
          .Title("Closed")
          .Width("4em");
   })
   .Footer(false)
   .Render();
%>
  

Комментарии:

1. Хороший вариант использования для троичного выражения: .ClientTemplate("<#= Closed ? 'Yes' : 'No' #>")

2. Я использовал .ClientTemplate("<\#=Closed ? 'Yes' : 'No' \#>") вместо .ClientTemplate("<#=Closed ? 'Yes' : 'No' #>")

Ответ №2:

Используйте шаблон для преобразования значения из True / False в Yes / No. Вот пример того, как это сделать:

http://www.telerik.com/community/forums/aspnet-ajax/grid/how-do-i-show-yes-no-for-boolean-columns-instead-of-true-false.aspx

Комментарии:

1. биггс, спасибо за ваш ответ. Я видел этот ответ. Ему не хватает глубины, и я не смог понять, как применить его к моему определению сетки, которое использует fluent API. Я действительно понял, как это сделать, но я не могу опубликовать ответ в течение 8 часов.

2. -1 За указание на asp.net сетка веб-формы, вопрос был о asp.net сетка mvc.

Ответ №3:

Я нашел пример на форумах Telerik, в котором пошаговое руководство выполняется на основе привязок сервера или клиента.

http://www.telerik.com/community/forums/aspnet-mvc/grid/changing-a-bool-field-to-display-yes-no.aspx

В моем случае я использую привязку AJAX, поэтому мне нужен ClientTemplate:

 columns.Bound(model => model.SubLimits).Title("Sublimits").Width(100)
    .ClientTemplate("<#=SubLimits?'Yes':'No'#>");
  

Ответ №4:

Я некоторое время боролся с этим — в моем случае <> вокруг выражения в ClientTemplate, похоже, не сработало. Я обнаружил проблему, просмотрев сгенерированный html-он генерировал теги, такие как <no></no>. Следующие, которые отлично работают для меня:

           columns.Bound(c => c.DHSLane).Title("DHS Lane")
                 .ClientTemplate("#=DHSLane?'Yes':'No'#")