Kendo ui 带参数的kendo客户端模板

Kendo ui 带参数的kendo客户端模板,kendo-ui,kendo-grid,kendo-asp.net-mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我正在尝试为一组列使用客户机模板建立一个剑道MVC网格。 我有这个,它正在工作: columns.Bound(m => m.FC_Sun).ClientTemplate("# if(FC_Sun != Base_Sun) {#" + "<span style='color:red;'>#:FC_Sun # </span>" + "# } else {#" + "#: FC_Sun #" + "# } #"); columns.Bound(m=>m.FC_-Sun)

我正在尝试为一组列使用客户机模板建立一个剑道MVC网格。 我有这个,它正在工作:

columns.Bound(m => m.FC_Sun).ClientTemplate("# if(FC_Sun != Base_Sun) {#" + "<span style='color:red;'>#:FC_Sun # </span>" + "# } else {#" + "#: FC_Sun #" + "# } #");
columns.Bound(m=>m.FC_-Sun).ClientTemplate(“#if(FC_-Sun!=Base_-Sun){#“+”:FC_-Sun#“+”}否则{#“+”:FC_-Sun{#“+”;
然而,我想把它移到一个客户端模板上,因为我需要向列中添加更多的项,而内联模板似乎有点“笨重”

问题是,如何使用单个客户端模板实现这一点。我有一个适用于特定列的现有列(与上面的相同)


#if(FC_-Sun!=基本_-Sun){#
#:FC_Sun#
#}否则{#
#:FC_Sun#
#}#
正如你所看到的,这与一个专栏紧密相连,这样做我需要创建7个模板,一周中的每一天一个,这似乎有些过分。
那么,有没有一种方法可以将额外的参数传递给模板,告诉它在if语句中使用哪些值呢?

不幸的是,没有一种方法可以将参数直接传递给剑道模板。但是,您可以尝试在模板中使用,并为开关键向模型中添加枚举(或任何可行的方法):

<script id="columnTemplate" type="text/kendo-tmpl">
    # switch (DayofWeek) {
      case "Sunday": #
        <span style='color:orange;'>#:FC_Sun #</span>
      # break; #
    # case "Monday": #
        <span style='color:red;'>#:FC_Mon #</span>
      # break; #
  ...
    # } #
</script>

#开关(星期五){
“星期日”一案:#
#:FC_Sun#
#中断#
#案件“星期一”:#
#:FC_Mon#
#中断#
...
# } #
这应该允许您通过模型“传递参数”,并控制每个模型实例的模板外观


希望这能有所帮助。

事实证明,有一种方法可以将参数传递到网格中的模板:

"#=customColumnTemplate($.extend({}, data, { field: 'FC_Sun' }))#"
以及模板:

<script id="columnTemplate" type="text/kendo-tmpl"> 
  <p>#= data[field] #</p>
</script>
<script>
  var customColumnTemplate = kendo.template($('#columnTemplate').html());
</script>

函数customColumnTemplate(数据、字段、基字段){
var fc=数据[字段];
var fcBase=数据[基本字段];
如果(fc!=fcBase){
返回“+fc+”;
}
返回fc;
}
<script id="columnTemplate" type="text/kendo-tmpl"> 
  <p>#= data[field] #</p>
</script>
<script>
  var customColumnTemplate = kendo.template($('#columnTemplate').html());
</script>
"#=customColumnTemplate(data, 'FC_Sun', 'Base_Sun')#"
function customColumnTemplate(data, field, baseField) {         
  var fc = data[field];
  var fcBase = data[baseField];

  if (fc != fcBase) {
    return "<span style='color:red;'/>" + fc + "</span>";
  }

  return fc;
}