Javascript 使用ExtJS在另一个窗口中的事件上更新一个窗口的内容

Javascript 使用ExtJS在另一个窗口中的事件上更新一个窗口的内容,javascript,ajax,extjs,ajax-request,Javascript,Ajax,Extjs,Ajax Request,不久前,我开始学习ExtJS库,现在我想创建以下内容: 有一个垂直分隔的浏览器窗口。 左侧有一个带有目录和子目录的树面板(只有2层深)。 右侧将显示所选子目录内容的输出 我已经完成了界面部分,但我不知道当用户单击左侧的子目录时如何更改右侧的内容。我可以使用Ext.Ajax.request发出请求,但我不知道如何触发右侧内容的更新 顺便说一下。正如我所说的,左边是树形面板,右边是爪形面板,它们在视口中使用xtype:“panel”,但我认为这不适合这个问题 有什么建议吗?首先,您需要注册用户正在树

不久前,我开始学习ExtJS库,现在我想创建以下内容:

有一个垂直分隔的浏览器窗口。
左侧有一个带有目录和子目录的树面板(只有2层深)。
右侧将显示所选子目录内容的输出

我已经完成了界面部分,但我不知道当用户单击左侧的子目录时如何更改右侧的内容。我可以使用Ext.Ajax.request发出请求,但我不知道如何触发右侧内容的更新

顺便说一下。正如我所说的,左边是树形面板,右边是爪形面板,它们在视口中使用xtype:“panel”,但我认为这不适合这个问题


有什么建议吗?

首先,您需要注册用户正在树面板中选择节点的事实,这可以通过以下方式完成:

yourtreepanel.getSelectionModel().on('selectionchange', whattodonext);
其中,“yourtreepanel”是treepanel的名称(如果treepanel已分配给变量,则使用Ext.getCmp(“yourtreepanel”).getSelecti…)和“whattodonext”是用户选择节点时要调用的函数的名称

函数“WhatToNext”将如下所示:

    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
});
就这样

您可以使用params选项发送任何特定的POST参数,这些参数将决定服务的内容

不要忘记,如果遇到困难,请尝试使用Ext.getCmp('objectname')而不是仅仅使用'objectname'引用对象。操作


祝你好运

首先,您需要注册用户正在树面板中选择节点的事实,这可以通过以下方式完成:

yourtreepanel.getSelectionModel().on('selectionchange', whattodonext);
其中,“yourtreepanel”是treepanel的名称(如果treepanel已分配给变量,则使用Ext.getCmp(“yourtreepanel”).getSelecti…)和“whattodonext”是用户选择节点时要调用的函数的名称

函数“WhatToNext”将如下所示:

    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
});
就这样

您可以使用params选项发送任何特定的POST参数,这些参数将决定服务的内容

不要忘记,如果遇到困难,请尝试使用Ext.getCmp('objectname')而不是仅仅使用'objectname'引用对象。操作

祝你好运