在带有EXTJ的另一个窗口中,在事件上的一个窗口的内容更新内容
-
30-09-2019 - |
题
一段时间以前,我开始学习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 ...
祝你好运!
不隶属于 StackOverflow