当模板被使用时,Kendo TreeView 的 findByText 不起作用

问题描述 投票:0回答:1

我使用 kendo 模板渲染了 Kendo 树视图,如下所示:

 $("#TradingTreeView").kendoTreeView({
     loadOnDemand: false,
     template: kendo.template($("#TreeView-template").html())
 });

模板如下:

<script id="TreeView-template" type="text/kendo-ui-template">
  <div class="section group">
        <div class="TradingSpaceText">
            #: item.text #
        </div>
  </div>
</script>

当我使用

var treeview = $("#TradingTreeView").data("kendoTreeView");
var TradingSummary= treeview.findByText("Trading Space Summary");
treeview.select(TradingSummary);

enter image description here 所以在上面的情况下我得到“findByText”未定义。 请提出解决方案

javascript kendo-ui kendo-treeview
1个回答
0
投票

我通过覆盖

findByText
函数并删除所有换行符和空格解决了同样的情况。 要覆盖任何功能,您可以使用
kendo.ui.plugin
功能。就我而言,它看起来像:

const treeViewPlugin = (function (init) {
    return kendo.ui.TreeView.extend({
        init: function (element, options) {
            const that = this;
            init.call(that, element, options);
        },
        findByText: function (text) {
            return $(this.element)
                .find('.k-in')
                .filter(function (i, element) {
                    return (
                        $(element)
                            .text()
                            .replace(/\r?\n|\r/g, '')   //remove all line breakes
                            .trimStart()                //and trim spaces
                            .trimEnd() == text
                    );
                })
                .closest('.k-item');
        }
    });
})(kendo.ui.TreeView.fn.init);

kendo.ui.plugin(treeViewPlugin);
© www.soinside.com 2019 - 2024. All rights reserved.