一段时间以前,我开始学习Extjs库,现在我想创建以下内容:

有一个浏览器窗口,并分开垂直。
在左侧,有一个带有目录和子目录的Treepanel(只有2级深)。
在右侧,将有一个输出所选子目录的内容。

我已经完成了接口部分,但是当用户单击左侧的子目录时,我没有如何更改右侧的内容。我可以使用Ext.AJAX.Request提出请求,但是我不知道如何触发右侧内容的更新。

顺便一提。当我对左侧进行卫生时,左侧是Treepanel,右侧是Grippanel,它们与Xtype:“面板”视图,但我不认为这是这个问题的敌对者。

有什么建议么?

有帮助吗?

解决方案

首先,您需要注册用户在Treepanel中选择一个节点的事实,可以通过:

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

'YourTreepanel'是您的Treepanel的名称(如果将Treepanel分配给变量,否则请使用Ext.GetCMP('Yourtreepanel')。GetSelecti....)和'WhatToDOnext'和'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'.operation ... Operation ...

祝你好运!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top