После создания и рендеринга TreeView для пользовательского интерфейса Kendo для заполнения DIV повторный вызов поочередно отображает только «загрузка ...» или работает правильно. Поскольку у меня есть, возможно, похожие проблемы с Kendo UI ContextMenu, я предполагаю, что между ними может быть какая-то необходимая очистка, которая пассивно выполняется даже вызовами, так что нечетные вызовы работают, но я не могу понять это (ссылка на пользовательский интерфейс Kendo docs я мог бы отсутствовать, поэтому я могу понять, почему я пропустил это, было бы полезно помочь с другими проблемами).Kendo UI Javascript redraw TreeView не рендеринга
В моем примере 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>
Как обычно, после нескольких часов борьбы с этим возникла идея сразу после публикации. Я вставил $ ('# Tree_Space'). Empty() в мой «уничтожить», чтобы очистить DIV, а также уничтожить конфигурацию KendoUI. Я хотел бы изменить этот вопрос, чтобы спросить кого угодно, где в KendoUI docs я должен был найти эту информацию - как я должен был знать, кроме колоть в темноте, потому что у меня есть другие подобные проблемы с ContextMenu, и кто знает, что еще может произойти , –
Некоторые элементы кендуи - это места после нижнего колонтитула в доме. Эти элементы останутся, если вы просто очистите оболочку div. Я предполагаю, что метод destroy() предназначен для очистки DropDownList и других артефактов, которые были сохранены вне элемента оболочки. –
Я добавил базовый виджет уничтожить документацию, которую я нашел. Это не специфично для TreeView, однако древовидная структура расширяет базу. –