#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. Вот пример того, как это сделать:
Комментарии:
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'#")