Kendo UI Javascript重绘TreeView不渲染

Kendo UI Javascript redraw of TreeView not rendering

本文关键字:TreeView 重绘 UI Javascript Kendo      更新时间:2023-09-26

创建并渲染剑道UI树视图以填充DIV后,重复调用交替地仅呈现"加载..."或工作正常。由于我在使用Kendo UI ContextMenu时可能遇到类似的问题,因此我推测两者之间可能有一些必要的清理,这是通过甚至调用被动完成的,例如奇怪的调用起作用,但我无法弄清楚(指向Kendo UI文档的链接我可能缺少,以便我可以理解为什么我错过了这个,以帮助解决其他问题)。

在我的 JSFiddle 示例中,一遍又一遍地单击"绘制",您将看到替代行为。投机地点击"画,毁,画,毁..."似乎无济于事。

https://jsfiddle.net/rk3nfnnu/

<script>
    function TreeDestroy() { // http://stackoverflow.com/questions/5431351
        $('#Tree_Space').data('kendoTreeView').destroy();
        alert('destroyed');
    }
    function TreeShow() {
        $('#Tree_Space').kendoTreeView({
            dataSource: [ { Name: 'Top', items: [ { Name:'Item' } ] } ],
            template: kendo.template($('#Tree_template').html())
        });
        alert('shown');
    }
</script>
<a href="#" onclick="TreeShow(); return false;">draw</a> |
<a href="#" onclick="TreeDestroy(); return false;">destroy</a>
<div id='Tree_Space'>
</div>
<script type='text/x-kendo-template' id='Tree_template'>
    #= item.Name#
</script>

我已经更新了那个小提琴。销毁();方法可能只在呈现小部件(节点)后销毁分配的 DOM 元素。我怀疑它清理了包装纸之类的东西。在您的TreeDestroy()中,对该元素div发出清除。当然,你应该在 TreeCreate 之前调用 TreeDestroy,以防万一。

function TreeDestroy() { // http://stackoverflow.com/questions/5431351
        $('#Tree_Space').data('kendoTreeView').destroy();       
        $('#Tree_Space').html('');
        alert('destroyed');
    }

以下是一些 kendoui 文档,其中提到了如何处理手动删除小部件。