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

but condition is taken as string??

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

5 回答 5

32

在 Kendo 模板中使用哈希语法有三种方法:

  1. 渲染文字值:#= #
  2. 呈现 HTML 编码的值:#: #
  3. 执行任意 JavaScript 代码:# if(...){# ... #}#

所以在你的代码中你必须写

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

请注意示例中的#符号如何将内部代码与外部代码分开。当您在代码中时,您不必#再次使用来访问变量,这就是为什么 Active 之前可以没有的原因#

于 2013-08-27T06:02:20.030 回答
8

尝试这个,

 columns.Bound(p => p.Active).ClientTemplate(
                "# if (IsServiceExist) { #" +
                    "<input type='button' value='OK' />"+
                "# }#").Width(150).Title("Status");
于 2013-08-27T06:45:57.007 回答
5

我希望你能得到解决方案......

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);
于 2015-01-21T05:26:18.053 回答
4

要在您的 Kendo 模板中呈现数据值,您可以使用以下内容作为指南:

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

这可能会帮助你。这只是一个例子...

于 2016-08-11T10:08:13.470 回答