使用模板自定义Kendo树视图时出现问题

时间:2016-12-16 09:08:05

标签: kendo-ui hierarchical-data kendo-treeview kendo-template

我有一个使用分层数据源填充的剑道树视图。如果从数据库表中软删除该节点,我想显示几个红色节点。 (软删除的记录用数据库字段标识" DEL_FLG。如果此字段设置为Y,则记录被视为已删除。以下是我填充树的方式。您能告诉我如何软删除红色记录?

       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
    });

1 个答案:

答案 0 :(得分: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的kendo模板,因此使用实际的if-else语句会更容易。

使用一个红色节点更新了示例:http://dojo.telerik.com/@Stephen/esened