0

我有一个kendo树视图,我使用分层数据源来填充。如果从数据库表中软删除该节点,我想用红色显示少量节点。 (软删除的记录用数据库字段“DEL_FLG”标识,如果该字段设置为Y,则记录被认为是删除的,下面是我填充树的方式,请告诉我如何软删除红色记录?使用模板自定义Kendo树视图时的问题

 var treeData = new kendo.data.HierarchicalDataSource({ 

     transport: { 
      read: { 
       url: NsMenuMaster.urls.getMenuTreeUrl, 
       data: data, 
       datatype: "json", 
       type: "POST" 
      } 
     }, 
     schema: { 
      model: { 
       id: "MenuConfigUid",     
       children: "Child" 

      } 
     } 
    }); 

    $("#MenuTreelist").kendoTreeView({ 
     dataSource: treeData, 
     dataTextField: ["MenuText"], 
     dataValueField: ["MenuConfigUid"], 
     height: 1000, 
     template: "#: item.DelFlg # == 'Y'" ? "<div style='color: red'>#: item.MenuText #</div>" : "<div style='color: black'>#: item.MenuText #</div>", 
     checkboxes: { 
      template: "<input type='checkbox' name='StudentClassID' value='#= item.id #' />", 
      checkChildren: true 
     }, 
     select: NsMenuMaster.onSelect 
    }); 
+0

你的问题的标题说,* *的问题,但没有任何模板可言。看起来你甚至没有开始。你尝试过什么吗? – DontVoteMeDown

+0

Hi @DontVoteMeDown我已经更新了代码。你现在可以检查吗?为什么它不能正常工作... –

回答

0

添加模板配置到TreeView选项,即:

$("#MenuTreelist").kendoTreeView({ 
    template: kendo.template($("#treeview-template").html()), 
    .... 

和某种模板

<script id="treeview-template" type="text/kendo-ui-template"> 
    # if (item.DEL_FLG) { # 
     <div style='color: red'>#: item.text #</div> 
    # } 
    else { # 
     <div>#: item.text #</div> 
    # } # 
</script> 

简单的例子:http://dojo.telerik.com/@Stephen/UtobA

问题更新

后其他细节

您的模板更改为

template: "# if (item.DelFlg == 'Y') { # <div style='color: red'>#: item.MenuText #</div> # } else { # <div style='color: black'>#: item.MenuText #</div> # } #" 

为:语法是非常困难的(如果不是不可能的话)与混合值剑道模板正确编码使用任意javascript呈现,因此使用实际的if-else语句更简单。

更新例如一个红色的节点:http://dojo.telerik.com/@Stephen/esened

+0

我已经更新了合并模板的代码。它仍然无法正常工作 –

+0

非常感谢。它工作:) –