代码之家  ›  专栏  ›  技术社区  ›  Diksha

条件在KendoUI列模板中未按预期工作

  •  1
  • Diksha  · 技术社区  · 6 年前

    我通过API获取JSON数据,并使用kendoui将其显示在表中。

    $scope.ReportViewGrid = function ReportViewGrid(jsonData) {
      if (jsonData == null) return;
    
      var fileName = "ReportView";
      var grid = $("#ReportViewGrid").kendoGrid({
        toolbar: [{
          template: "<input type='button' class='k-button' value='Back' onclick='back()' />"
        }],
        editable: false,
        filterable: true,
        resizable: true,
        pageable: {
          pageSize: 10,
          buttonCount: 5
        },
        columns: jsonData.columns,
        dataSource: {
          data: jsonData.children
        },
    
      }).data("kendoGrid");
    }
    <div id="ReportViewGrid"></div>



    -----------------
    C1 | C2 | C3 | C4
    -----------------
    v1 | v2 | v3 | v4
    x1 | x2 | x3 |
    y1 | y2 | y3 |
    z1 | z2 | z3 | z4
    

    列1使用模板链接。但我想在第4列中有值的地方得到链接数据,否则是普通文本。我试过下面的代码,也试过翻转条件,但是链接总是出现。

    ...
     if("uName".equalsIgnoreCase(uNameField)){
        template = "#  if (\"#=encodeURI(md5hash)#\".equals(\"\") ) { #"
                        +" <span>#=fileName#</span>"
                        +" # } else{ #"
                        +" <a style=\"cursor: pointer;\" onclick='expand(\"fileDetailForDuplicateFile\",\"#=encodeURI(fileName)#\",\"#=encodeURI(md5hash)#\")'>#=fileName#</a>"
                        +" #} #";
         nodeColumns.setTemplate(template);
     }
     root.addColumns(nodeColumns);
     }
     root.addLinkedColumn("uName");
     Gson gson = new Gson();
     return gson.toJson(root);
    


    我有什么遗漏吗?任何帮助都会很好。

    1 回复  |  直到 6 年前
        1
  •  1
  •   ajain    6 年前

    template = "# if(data.md5hash == ''){ #" +
    " <span>#=fileName#</span> " +
    " #} else {#" +
    " <a style=\"cursor: pointer;\" onclick='expand(\"fileDetailForDuplicateFile\",\"#=encodeURI(fileName)#\",\"#=encodeURI(md5hash)#\")'>#=fileName#</a>" +
    " # } #";