2013-08-27 2 views
8
columns.Bound(p => p.Active).ClientTemplate("\\#if('#=Active#'=='Y') {\\<input type='button' value='OK' />\\}\\#").Width(150).Title("Status"); 

но состояние взято как строка ??Kendo Grid Client Template with Condition

#if('Y'=='Y')`enter code here` { 
<input type="button" value="OK"> 
}# 

ответ

21

Есть три способа использовать синтаксис хэша в шаблоне Кендо:

  1. Рендер буквенных значений: # = #
  2. Рендер HTML-enocded значения: # #
  3. Execute произвольный код JavaScript: # if (...) {# ... #} #

Так что в вашем коде вам нужно будет написать

columns.Bound(p => p.Active).ClientTemplate(
    "#if(Active=='Y') {# 
     <input type="button" value="OK"> 
     #}#").Width(150).Title("Status"); 

Обратите внимание, в образце, как # признаки разделения внутри код из вне кода. Когда вы находитесь внутри кода, вам не нужно снова использовать # для доступа к переменной, и поэтому Active может быть без # раньше.

+0

Вы знаете, как это сделать с помощью внешнего шаблона (в файле сценария)? Мой шаблон слишком сложный, чтобы поместить его в clienttemplate ... – Hemadeus

+0

Я думаю, что это должно работать ... columnss.Bound (p => p.Active) .ClientTemplate ("# myfunc (data) #"); –

+0

Это было полезно для получения моих пустых значений в отсортированном шаблоне: спасибо. – callisto

5

Попробуйте это,

columns.Bound(p => p.Active).ClientTemplate(
       "# if (IsServiceExist) { #" + 
        "<input type='button' value='OK' />"+ 
       "# }#").Width(150).Title("Status"); 
+0

Что бы это было, если я хочу несколько условий? Например: if (IsServiceExist &&! IsEmail). Правильно ли это? – Metaphor

+0

@Metaphor Да, вы можете сделать это в ClientTemplate – Jaimin

2

Я надеюсь, что у получить решение ....

columns.Bound(p => p.IsActive).ClientTemplate("\\# if (IsActive != false) { \\#" + "\\<input type=\"checkbox\" id=\"checkBox\" class=\"parentCheckBox\" window-call=\"template\" checked/>\\" + "\\# } else { \\#" + "\\<input type=\"checkbox\" id=\"checkBox\" class=\"parentCheckBox\" window-call=\"template\" />\\" + "#\\ } \\#").Width(10); 
+1

своей нечитаемой ... можете ли вы, пожалуйста, улучшить свой ответ? – agpt

1

Чтобы иметь значения данных, оказываемые в шаблоне кендо вы можете использовать следующие в качестве руководства:

columns.Template(@<text></text>) 
    .ClientTemplate("#if (Field3 == true) {#" 
    + "<a onclick='jsFoo(#=Id#)' href='\\#'></a> " 
    + "#} #").Width(70).Title("ColA"); 
-1
columns.Bound(searchModel => searchModel.Value).ClientTemplate("#if(Name=='DevboardTask'){# <a href='\\#UpdateStatusWindow' onclick=\"javascript:openflexpmtask('#=Value#');\">#=Value#</a> #} else {# <a\">#=Value#</a> #}#"); 

Это может помочь вам. Это всего лишь пример ...