Kendo Grid - Условный шаблон клиента - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть следующий шаблон клиента в сетке Kendo:

.Columns(columns =>
{
    columns.Bound(p => p.ID).ClientTemplate("<input id='#=data.ID#' type='checkbox' onclick='chkEntry(this)' />")

и т. Д.

Это прекрасно работает.Вместо этого я хочу показать этот вход, только если data.CandidateCode равен 'CO1'.

Это одна из моих попыток:

.Columns(columns =>
{
    columns.Bound(p => p.ID).ClientTemplate("#if (# #=data.CandidateCode# # == 'CO1') {#<input id='#=data.ID#' type='checkbox' onclick= chkEntry(this)' /> #}#")

Насколько я понимаю, можно использовать хэштег (#) для обозначения произвольного JavaScript, а также для литералов и значений данных.Я на правильном пути здесь?Независимо от того, как я пробую этот синтаксис, я получаю ошибку «Uncaught Error: Invalid template».

1 Ответ

2 голосов
/ 02 апреля 2019

Да, синтаксис хеша может быть сложным.Как только вы начинаете js с «#», вам больше не нужно экранировать переменные. Когда вы находитесь в разметке, как <input>, вы делаете. Попробуйте это без строк комментария:

columns.Bound(p => p.ID)
                     // Inside code no need to hashtag CandidateCode
    .ClientTemplate("# if (CandidateCode == 'CO1') { #" +                           " 
                     // Inside markup you do need hashtag
                    "<input id='#=ID#' type='checkbox' onclick='chkEntry(this)' />" +
                    "#}#")
...