kendo ui grid template else if

时间:2016-10-18 16:20:02

标签: javascript jquery kendo-ui kendo-grid

以下代码无效。任何人都可以帮我写作else if这里有条件吗?

   function getMyColumns() {
     return [{
       field: "xxx",
       title: "1st",
       width: "75px",
     }, {
       field: "ChoiceCode",
       title: "2nd",
       width: "75px",
       template: "#if(ChoiceCode == null) {# #} else If(mychoice == ChoiceCode) {#" +                                
                                    "{ #<div style='background-color:lightgreen'><span>#=ChoiceCode#</span></div>#}" +
                                "else {# <span>#=secondChoiceCode#</span> #}" +
                            "#}#"
            }, {
    }];
}

在选择字段中,如果它为null我想显示一个空字符串,如果它有一个值并且它与我的选择匹配,我想突出显示那个绿色的单元格,如果它不匹配我的选择不要突出显示它。

4 个答案:

答案 0 :(得分:1)

就个人而言,我会改变这一点,以便更容易阅读和更改。

而不是将所有逻辑放在此处将其拉出到函数中,因此模板命令如下所示:

         function(choiceCode, myChoice, secondChoiceCode) {
   var retString = '';
   if (choiceCode === null || choiceCode === undefined) {
     retString = '';
   } else if (myChoice === choiceCode) {
     resString = '<div style="background-color:lightgreen;"><span>' +
       choiceCode + '</span></div>'
   } else {
     retString = '<span>' + secondChoiceCode + '</span>';
   }

   return retString;
 }

具有如下脚本编写的功能:

public void setAlcoholContent(double aAlcoholContent) {
    if (aAlcoholContent < 0 || aAlcoholContent > 1) {
        throw new IllegalArgumentException("Alcohol content can't be more than 1 or less than 0");
    }
    this.alcoholContent = aAlcoholContent;
}

然后,您可以远离必须记住各种大括号的位置,并在模板中将其转义。

显然将函数更改为需要它返回数据的方式,但这取决于我在原始代码中看到的内容。我假设变量是每行的绑定模型中的属性。

修改 我添加了以下演示,希望有助于: user input

答案 1 :(得分:1)

如果您将模板内联,则为:

#if(ChoiceCode == null) {# #} else If(mychoice == ChoiceCode) {# { #<div style='background-color:lightgreen'><span>#=ChoiceCode#</span></div>#}else {# <span>#=secondChoiceCode#</span> #} #}#

或更好(故意没有#):

if(ChoiceCode == null) { } 
else If(mychoice == ChoiceCode) {
    { <div style='background-color:lightgreen'><span>#=ChoiceCode#</span></div>
}
else { 
    <span>#=secondChoiceCode#</span> } 
}

注意到了什么问题?我认为应该是这样的:

if(ChoiceCode == null) { } 
else If(mychoice == ChoiceCode) {
    <div style='background-color:lightgreen'><span>#=ChoiceCode#</span></div>
}
else { 
    <span>#=secondChoiceCode#</span>
}

内联版本:

# if(ChoiceCode == null) { # # } else if (mychoice == ChoiceCode) { #<div style='background-color:lightgreen'><span>#=ChoiceCode#</span></div> # } else { # <span>#=secondChoiceCode#</span> # } #

代码版本:

template: "#if(ChoiceCode == null) {# #} else if(mychoice == ChoiceCode) {#" +                                
          "<div style='background-color:lightgreen'><span>#=ChoiceCode#</span></div>#}" +
          "else {# <span>#=secondChoiceCode#</span> #}#";

答案 2 :(得分:0)

可能的拼写错误

} else if(mychoice == ChoiceCode){

应该是

}否则if(mychoice == ChoiceCode){

答案 3 :(得分:0)

模板中有一些extara括号({)

试试这个

function getMyColumns() {
        return [{
                {
                field: "xxx",
                title: "1st",
                width: "75px",
            }, {
                field: "ChoiceCode",
                title: "2nd",
                width: "75px",
                template: "#if(ChoiceCode == null) {# #} else if(mychoice == ChoiceCode) {#" +
                        "<div style='background-color:lightgreen'><span>#=ChoiceCode#</span></div>#}" +
                        "else {# <span>#=secondChoiceCode#</span> #}#",
            }, {
            }];
    }