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

ma la condizione è presa come stringa ??Kendo Grid Client Template with Condition

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

risposta

21

Ci sono tre modi per utilizzare la sintassi hash in un modello Kendo:

  1. Render valori letterali: # = #
  2. Render valori HTML-enocded: #: #
  3. Esegui codice JavaScript arbitrario: # if (...) {# ... #} #

Quindi nel codice dovresti scrivere

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

Avviso nel campione come il # segni separati all'interno codice dall'esterno codice. Quando si è all'interno del codice, non è necessario utilizzare nuovamente # per accedere a una variabile ed è per questo che Active può essere senza # prima.

+0

Sai come farlo con un modello esterno (in un file di script)? Il mio modello è troppo complicato per inserirlo all'interno del clienttemplate ... – Hemadeus

+0

Penso che questo dovrebbe funzionare ... columns.Bound (p => p.Active) .ClientTemplate ("# myfunc (data) #"); –

+0

Questo è stato utile per ottenere i miei valori vuoti in un modello ordinato: grazie. – callisto

5

Prova questo,

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

Cosa sarebbe se voglio più condizioni? Come: if (IsServiceExist &&! IsEmail). È il modo corretto? – Metaphor

+0

@Metaphor Sì, puoi farlo in ClientTemplate – Jaimin

2

Spero u ottenere la soluzione ....

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

illeggibile ... puoi migliorare la risposta? – agpt

1

Per avere valori dei dati resi nel modello Kendo è possibile utilizzare il seguente come guida:

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

Questo potrebbe aiutare. Questo è solo un esempio ...

Problemi correlati