Сетка кендо — условный шаблон клиента

#kendo-ui #kendo-grid

#кендо-пользовательский интерфейс #кендо-сетка

Вопрос:

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

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

и т.д…

Это прекрасно работает. Вместо этого я хочу показывать только эти входные данные if.Код кандидата равен ‘CO1’.

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

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

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

Ответ №1:

Да, синтаксис хэша может быть сложным. Как только вы запустите 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)' />"  
                    "#}#")