Как каждый обновляет содержание узла в Ext.tree.treePanel?

У меня есть Расширение TreePanel к которому я пытаюсь добавить некоторое разбиение на страницы серверной стороны. Мы используем Расширение 2.2.0.

У нас есть специализированное дерево, которое только имеет два уровня. Мы - объекты списка 25 под самим деревом (корень?), но каждый узел объекта может иметь неограниченное количество детей. Я предполагаю, что это "лист" s. Узлы объекта используют пользовательское uiProvider, как все дети.

Я добавил некоторые изображения для предыдущей / следующей страницы к itemNodeUI и добавленные обработчики, который обновляет атрибуты узла объекта с pageNumber. DataUrl файл php захватывает эти атрибуты и в основном добавляет LIMIT к запросу SQL.

Все работает, как это должно, кроме тех случаев, когда Вы нажимаете на следующие/предыдущие изображения, коллапсы узла объекта. При расширении узла все - как это должно быть, но мне или нужен узел для пребывания расширенным, или иметь его автоволшебно повторно расширяются после загрузки. Я попытался использовать expand(), fireEvent('expand'), expandChildNodes, целые девять ярдов.Ничего.


Вот функция, которой это называют при нажатии на кнопку 'Previous Page':

    onPaginationPrevButtonClick: function(e,t) {
        var parentEl = Ext.get(t).findParentNode('.x-tree-node-ct', 10, false).previousSibling;
        var treeNodeId = parentEl.getAttribute('ext:tree-node-id');
        var treeNode = this.tree.getNodeById(treeNodeId);
        var currentPage = parseInt(treeNode.attributes.pageNumber);

        if (currentPage > 0) {
            treeNode.attributes.pageNumber = currentPage - 1;
        }

        treeNode.getLoader().load(treeNode);
    }



Другая проблема, которую я имею, то, что itemNodeUI, который расширяется TreeNodeUI, 'не обновляется', когда вышеупомянутая функция вызвана. Таким образом, текст, который показывает, сколько результатов показывают, не изменяется от первой страницы. Существует ли способ обновиться, этот узел также и иметь его расширяются, не перезагружая целое дерево?


Если существует лучший или более легкий способ, которым я должен делать это, я ценю любой вход, который Вы имеете. Я - Расширение. NEWB, так в значительной степени все, что я делаю, является 'взломом'.;)


Править:

Я почти смущен для принятия этого, но я полностью смог решить выходящий из строя вопрос при помощи treeNode.reload() вместо пере -load()- луг сам загрузчик. вздох...

treeNode.getLoader().load(treeNode);

должен был быть:

treeNode.reload();


Я все еще должен, однако, выяснить, как обновить сам узел так, чтобы текст, показывающий результаты и предыдущие/следующие кнопки, показал правильно. Я попытался использовать:

treeNode.parentNode.reload();

... но все, что делает, обновить целое дерево. Я просто хочу, чтобы сам itemNode был обновлен. Какие-либо мысли?


Заранее большое спасибо!

6
задан onof 20 May 2013 в 06:15
поделиться

1 ответ

Ну, я практически только что присвоил каждому элементу HTML уникальный идентификатор и использую Ext.get для обновления стилей css и innerHTML. Это довольно уродливая работа, но она должна сойтись.

Надеюсь, что кто-то еще сможет извлечь из этого хоть какую-то пользу. Удачи.

0
ответ дан 18 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: