Обновите содержимое одного окна на событии в другом окне с EXTJS

StackOverflow https://stackoverflow.com/questions/3554860

Вопрос

Некоторое время назад я начал изучать библиотеку Extjs, и теперь я хотел бы создать следующее:

Есть окно браузера, и он разделен вертикалью.
Слева находится Treepanel с каталогами и подкаталазами (только 2 уровня).
С правой стороны будет выход для содержания выбранного подкаталога.

Я сделал часть интерфейса, но я не знаю, как менять контент на правой стороне, когда пользователь нажимает на подкаталог на левой стороне. Я могу сделать запрос с Ext.ajax.request, но я не знаю, как вызвать обновление контента для правой стороны.

Кстати. Когда я мантионнул левую сторону, это Treepanel, а правая сторона - Grippanel, и они находятся в ViewPort с XType: «Панель», но я не думаю, что это мнение для этого вопроса.

Какие-либо предложения?

Это было полезно?

Решение

Во-первых, вам нужно зарегистрировать тот факт, что пользователь выбирает узел в Treepanel, это можно сделать через:

yourtreepanel.getSelectionModel().on('selectionchange', whattodonext);

Где «YourTreepanel» - это имя вашего TRepanel (если Treepanel был назначен переменной, в противном случае используйте ext.getcmp ('yourtreepanel'). Getslecti ....) и 'whattoDonext' - это имя функции, чтобы позвонить, когда Пользователь выбирает узел.

Функция «WhattoDonext» тогда выглядит так:

    function whattodonext(){
        node=yourtreepanel.selModel.selNode;
        if(node){
            if(node.isLeaf()){
// this works out what you want to do if the user has selected a valid leaf node


            }else{
// otherwise...put anything you wish to happen here (i.e. if a folder has been selected)

            }

        }   
    }

Следующая часть - обновить панель справа с контентом (если его называли «MyContentPanel»). Сказать, что этот контент должен быть загружен из «MyContent.html» в разделе с

// this works out what you want to do if the user has selected a valid leaf node

Вы бы поставили код:

mycontentpanel.load({
url: 'mycontent.html',
params: {
yourparam1:'param1value',
yourparam2:'param2value'
},
nocache: true,
timeout: 30
});

Вот и все!

Вы можете использовать параметры параметров для отправки любых конкретных параметров сообщения, которые вы можете иметь, который будет решать, какой контент подается.

И не забывайте, если вы запускаете трудности, попробуйте ссылаться на ваши объекты, используя Ext.GetCMP («ObjectName») вместо просто «ObjectName».

Удачи!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top