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