嵌套在kendo网格列模板

时间:2015-06-29 07:56:26

标签: javascript if-statement kendo-ui kendo-grid

尝试在kendo网格列模板中实现条件功能时,出现问题,我的网格中的数据没有显示,我的功能是

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(" ") #} #"
有人能帮帮我吗?我究竟做错了什么?感谢

1 个答案:

答案 0 :(得分:4)

你应该在其中使用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()),