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

ale warunek jest traktowany jako ciąg ??Szablon klienta Kendo Grid z warunkiem

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

Odpowiedz

21

Istnieją trzy sposoby, aby użyć składni hash w szablonie Kendo:

  1. Render wartości dosłowne: # = #
  2. Render wartości HTML-enocded: #: #
  3. Execute dowolny kod JavaScript: # if (...) {# ... #} #

W twoim kodzie musiałbyś napisać:

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

Wskazówki w próbce, w jaki sposób oddzielić # znaki wewnątrz Kod z poza kod. Kiedy znajdujesz się w kodzie, nie musisz ponownie używać #, aby uzyskać dostęp do zmiennej i dlatego Aktywny może być bez # wcześniej.

+0

Czy wiesz, jak to zrobić z zewnętrznym szablonem (w pliku skryptowym)? Mój szablon jest zbyt skomplikowany, aby umieścić go w szablonie klienta ... – Hemadeus

+0

Myślę, że to powinno działać ... columns.Bound (p => p.Active) .ClientTemplate ("# myfunc (data) #"); –

+0

To było przydatne przy uzyskiwaniu pustych wartości w szablonie posortowanym: dzięki. – callisto

5

Spróbuj tego,

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

Co by to było, gdybym chciał mieć wiele warunków? Like: if (IsServiceExist &&! IsEmail). Czy to właściwa droga? – Metaphor

+0

@Metaphor Tak, możesz to zrobić w ClientTemplate – Jaimin

2

Mam nadzieję, że u dostać rozwiązanie ....

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

jego nieczytelne ... czy możesz poprawić odpowiedź? – agpt

1

Aby mieć wartości danych świadczonych w szablonie Kendo można użyć następujących wskazówek:

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> #}#"); 

To może pomóc. To tylko przykład ...

Powiązane problemy