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

但條件被視爲字符串?具備條件的Kendo Grid客戶端模板

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

回答

21

有三種方法使用哈希語法在劍道模板:

  1. 渲染文字值:#=#
  2. 渲染HTML-enocded值:#:#
  3. 執行任意JavaScript代碼:#if(...){#...#}#

因此在您的代碼中,您必須編寫

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

通知的#跡象如何分離內部代碼從代碼。當你在代碼中時,你不必再次使用#來訪問變量,這就是爲什麼Active可以在#之前沒有。

+0

你知道如何做到這一點與外部模板(在腳本文件中)?我的模板太複雜,無法放入客戶端模板... – Hemadeus

+0

我認爲這應該工作... columns.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

我希望u得到解決....

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

要在你的劍道模板渲染的數據值,你可以使用以下作爲指導:

​​
-1
columns.Bound(searchModel => searchModel.Value).ClientTemplate("#if(Name=='DevboardTask'){# <a href='\\#UpdateStatusWindow' onclick=\"javascript:openflexpmtask('#=Value#');\">#=Value#</a> #} else {# <a\">#=Value#</a> #}#"); 

這可以幫助你。這只是一個例子...