Kendo TreeView不会为自定义模板生成数据属性

时间:2017-09-08 21:15:44

标签: kendo-ui kendo-asp.net-mvc kendo-treeview

我正在使用Kendo.Mvc.UI.TreeViewItemModel来构建kendo树视图。除了IdText属性之外,此类还具有HtmlAttributes类型的IDictionary<string, string>属性

我可以在构建模型时将任何其他数据添加到HtmlAttributes属性中,而kendo会将这些Html属性呈现为树节点上的html data属性。

    public IEnumerable<TreeViewItemModel> BuildTreeView(IEnumerable<MyGroup> groups)
    {
        var nodes = new List<TreeViewItemModel>();

        foreach (var grp in groups)
        {
            var root = new TreeViewItemModel()
            {
                Id = "0",
                Text = grp.Key,
                HasChildren = grp.Any()
            };

            foreach (var item in grp)
            {
                var dictionary = new Dictionary<string, string>();
                dictionary.Add("data-template-id",item.TemplateID.ToString());                    
                dictionary.Add("data-filename", item.FileName);
                root.Items.Add(new TreeViewItemModel()
                {
                    Text = item.DisplayText,
                    HasChildren = false,
                    HtmlAttributes = dictionary
                });
            }
            nodes.Add(root);
        }
        return nodes;
    }

CSHTML

            @(Html.Kendo().TreeView()
                .Name("MyTreeView")
                .DataTextField("Text")
                .BindTo(Model.Items))

然后在JS中我可以访问此数据

   var _treeView = $("#MyTreeView").getKendoTreeView();
   var htmlItem = _treeView.select();
   var templateid = htmlItem.data("template-id");
   var filename = htmlItem.data("filename");

只要我使用kendo的默认模板,这个工作正常。但是,如果我使用自定义模板,那么Kendo不会生成数据属性

           @(Html.Kendo().TreeView()
                .Name("MyTreeView")
                .TemplateId("treeViewItemTemplate")
                .BindTo(Model.Items))


<script type="text/x-kendo-tmpl" id="treeViewItemTemplate">
    <span>#=item.text#</span>
    # if (!item.items){#
        <span class="glyphicon glyphicon-plus-sign" aria-hidden=true></span>
    #}#
</script>

现在当页面呈现并使用F12时,如果查看树节点(li标签),我就看不到任何数据属性

0 个答案:

没有答案