在剑道格线柱模板中嵌套if条件

Nested if condition in kendo grid column template

本文关键字:嵌套 if 条件      更新时间:2023-09-26

当试图在剑道网格列模板中实现条件函数时,出现了一个问题,来自我的网格的数据没有显示,我的函数是

function material() {
  if (PCommonPortalMethods.GetSiteLanguage() == 'en') {
    if (data.Unit._Key) {
      Unit.UnitGlobalName
    }
    else ('')
  }
  else {
    if (data.Unit._Key) {
      Unit.UnitLocalName
    }
    else ('')
  }
}      

我从模板中称之为:template:'#= material() #'

我也尝试过类似的东西:

template: "#if (PCommonPortalMethods.GetSiteLanguage() == 'en') {# if(data.Unit._Key) #=Unit.UnitGlobalName#  else(" ") #} else { # if(data.Unit._Key) #=Unit.UnitLocalName#  else(" ") #} #"

有人能帮我吗?我做错了什么?感谢

您应该在其中使用return,像这样更改您的脚本

function material() {
  if (PCommonPortalMethods.GetSiteLanguage() === 'en') {
    if (data.Unit._Key) {
      return Unit.UnitGlobalName;
    }
    return '';
  }
  else {
    if (data.Unit._Key) {
        return Unit.UnitLocalName;
    }
    return '';
  }
}   

或者我们可以像这个一样更改您的脚本

function material() {
  var text = '';
  if(data.Unit._key) {
    text = PCommonPortalMethods.GetSiteLanguage() === 'en' ? 
              Unit.UnitGlobalName : Unit.UnitLocalName;
  }
  return text;
}

简单但仍然可读,如果你想制作一个脚本模板,它可以是这样的。

<script type="text/x-kendo-template" id="template">
    # if (PCommonPortalMethods.GetSiteLanguage() === 'en') { #
    #    if(data.Unit._Key) { #
    <span> #= Unit.UnitGlobalName # </span>
    #    } #
    #} else { # 
    #    if(data.Unit._Key) {#
    <span> #= Unit.UnitLocalName # </span>
    #    } #
    # } #
</script>

并像这个一样使用它

template: kendo.template($("#template").html()),