带有条件的 Kendo Grid 客户端模板

Posted

技术标签:

【中文标题】带有条件的 Kendo Grid 客户端模板【英文标题】:Kendo Grid Client Template with Condition 【发布时间】:2013-08-29 18:04:08 【问题描述】:
 columns.Bound(p => p.Active).ClientTemplate("\\#if('#=Active#'=='Y') \\<input type='button' value='OK' />\\\\#").Width(150).Title("Status");

但是条件被当作字符串??

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

【问题讨论】:

【参考方案1】:

在剑道模板中使用哈希语法的三种方式:

    呈现文字值:#= # 呈现 html 编码的值:#: # 执行任意javascript代码:# if(...)# ... ##

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

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

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

【讨论】:

你知道如何使用外部模板(在脚本文件中)吗?我的模板太复杂了,放不了clienttemplate里面... 我认为这应该可行... columns.Bound(p => p.Active).ClientTemplate("# myfunc(data) #"); 这对于在模板中排序我的空白值很有用:谢谢。 如果我也想写 else 条件?【参考方案2】:

试试这个,

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

【讨论】:

如果我想要多个条件会怎样?例如:if (IsServiceExist && !IsEmail)。方法正确吗? @Metaphor 是的,您可以在 ClientTemplate 中执行此操作 这对我很有帮助。谢谢贾敏。来我的网站translateyar.ir【参考方案3】:

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

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);

【讨论】:

【参考方案4】:

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

columns.Template(@<text></text>)
    .ClientTemplate("#if (Field3 == true) #"
    + "<a onclick='jsFoo(#=Id#)' href='\\#'></a> "
    + "# #").Width(70).Title("ColA");

【讨论】:

这个比原来的答案好【参考方案5】:
columns.Bound(searchModel => searchModel.Value).ClientTemplate(
    "#if(Name=='DevboardTask')# " + 
        "<a href='\\#UpdateStatusWindow' onclick=\"javascript:openflexpmtask('#=Value#');\">#=Value#</a> " +
    "# else # " +
        "<a\">#=Value#</a> " +
    "##");

这可能会对您有所帮助。这只是一个例子......

【讨论】:

以上是关于带有条件的 Kendo Grid 客户端模板的主要内容,如果未能解决你的问题,请参考以下文章

Kendo UI Grid - 客户端模板:转义 # 符号

带有 JSON 的 Kendo Grid .NET Core 模板

子网格的 Kendo Grid Fluent API DataBound 事件以显示无项目文本?

如何从 Kendo UI Grid 中的列模板访问列名?

如何根据 Kendo Grid Angular 4 中的条件为一列分配 2 个字段

如何在 mvc kendo ui 网格中绑定列的客户端模板中将“this”作为函数参数发送?