使用ExtJS在CQ5中获取对话框加载时下拉小部件的值
我有一个对话框,选项卡中有一个下拉(name=“number”,xtype=“selection”)小部件。加载对话框时,我需要获取此下拉列表中的值以显示/隐藏另一个选项卡 两个选项卡位于同一对话框中(xtype=“tabpanel”) 我尝试在第二个选项卡(需要隐藏/显示)中添加一个ExtJS代码作为“侦听器”,但没有成功:使用ExtJS在CQ5中获取对话框加载时下拉小部件的值,extjs,aem,Extjs,Aem,我有一个对话框,选项卡中有一个下拉(name=“number”,xtype=“selection”)小部件。加载对话框时,我需要获取此下拉列表中的值以显示/隐藏另一个选项卡 两个选项卡位于同一对话框中(xtype=“tabpanel”) 我尝试在第二个选项卡(需要隐藏/显示)中添加一个ExtJS代码作为“侦听器”,但没有成功: <listeners jcr:primaryType="nt:unstructured" rende
<listeners
jcr:primaryType="nt:unstructured"
render="function() {alert(this.findParentByType('tabpanel').getFieldValues('number')); }"/>
如果您查看OOB列表组件,它具有您想要的功能。 它为下拉选择实现两个侦听器,下拉选择包含要显示哪个选项卡的不同选项: 听众 加载内容->
function(){
this.findParentByType('tabpanel').manageTabs(this.getValue(),true);
}
选择已更改->
function(box,value){
box.findParentByType('tabpanel').manageTabs(value);
}
每当选择更改时,它将使用所选值管理选项卡,当内容更改时,它也将执行此操作
已加载,因此您不必一直更改值,更改才会生效
您还将看到实际的选项卡,以及它们正在实现用于呈现的侦听器:
渲染->
function() {
//The different panels will have to have the index corresponsing to their order in the node structure
this.findParentByType('tabpanel').hideTabStripItem( 'the index for the tab' );
}
最后,要使其工作,主选项卡面板需要将函数“manageTabs”定义为属性:
function(tab,noSwitch){
//Here you will have to specify the different node names for the panels
var tabs=['tab1','tab2','tab3',....,'tab n'];
var index=tabs.indexOf(tab);
if(index==-1) return;
for(var i=1;i<tabs.length;i++){
if(index==i){
this.unhideTabStripItem(i);
}else{
this.hideTabStripItem(i);
}
}
this.doLayout();if(!noSwitch)this.activate(index);
}
功能(选项卡,无开关){
//在这里,您必须为面板指定不同的节点名称
变量tabs=['tab1'、'tab2'、'tab3'、..、'tabn'];
var指数=tabs.indexOf(tab);
如果(索引==-1)返回;
对于(var i=1;我可以发布整个对话框吗?