Xpages 在djTabContainer中选择并关闭djTabPane

Xpages 在djTabContainer中选择并关闭djTabPane,xpages,xpages-ssjs,xpages-extlib,Xpages,Xpages Ssjs,Xpages Extlib,我想知道,是否有人对我的一个devel问题有线索(当然有;-) 我尝试使用带有动态Dojo选项卡窗格的“Dojo选项卡容器” <xp:div id="tabs"> <xe:djTabContainer id="djTabContainer1" tabPosition="top" style="height:250px;width:500px" defaultTabContent="defTab"> <xp:this.facet

我想知道,是否有人对我的一个devel问题有线索(当然有;-)

我尝试使用带有动态Dojo选项卡窗格的“Dojo选项卡容器”

<xp:div id="tabs">
    <xe:djTabContainer id="djTabContainer1" tabPosition="top"
        style="height:250px;width:500px" defaultTabContent="defTab">
        <xp:this.facets>
            <xe:djTabPane xp:key="defTab" id="myTab" partialEvents="true" closable="true">
                <xp:panel>
                    <xp:label value="#{javascript:getComponent('myTab').getTitle()}"></xp:label>
                </xp:panel>
            </xe:djTabPane>
        </xp:this.facets>
    </xe:djTabContainer>
</xp:div>
现在我想以编程方式切换(打开)到另一个选项卡,或者关闭一个选项卡。在这里很难找到有用的例子

我发现,我可以通过cont.setSelectedTab('2')以编程方式切换到另一个选项卡,而不是像我预期的那样cont.setSelectedTab('tab2')。由于某些原因,tabUniqueKey参数被完全忽略,而tabTitle参数则不被忽略。更糟糕的是:看起来除了tabTitle之外,所有createTab()参数都被忽略了

是否有一种优雅的方式来获取选项卡窗格组件getComponent('tab2')不起作用。既不考虑“id:'tab2'”也不考虑“tabUniqueKey:'tab2'”。我可以使用getComponent('myTab')获取一个选项卡,但是如果所有选项卡都具有相同的id,那么这完全没有用

所以,也没有

var cont:com.ibm.xsp.extlib.component.dojo.layout.UIDojoTabContainer = getComponent('djTabContainer1'); 
var tabSel:com.ibm.xsp.extlib.component.dojo.layout.UIDojoTabPane = comp.selectTab('tab2');
也不是

至少我要找的是类似于:

cont.closeTab('tab3'); // to close tab3
createTab()
返回UIDOJOTABBANE窗格对象,您可以使用它来选择随后创建的选项卡:

var cont:com.ibm.xsp.extlib.component.dojo.layout.UIDojoTabContainer = getComponent('djTabContainer1');
var paneTab1:com.ibm.xsp.extlib.component.dojo.layout.UIDojoTabPane = cont.createTab({id:'tab1', tabUniqueKey:'tab1', tabTitle:'tab1'});
...
cont.setSelectedTab(paneTab1.getTabUniqueKey());
您也可以使用此窗格对象关闭选项卡:

paneTab1.closeTab()

克努特,谢谢你的回答!!您的解决方案非常有效!对不起,克努特,我记不清了(是的,这很有帮助。谢谢你的回答。托马斯,太好了。请考虑接受这里的回答。谢谢。
var cont:com.ibm.xsp.extlib.component.dojo.layout.UIDojoTabContainer = getComponent('djTabContainer1');
var paneTab1:com.ibm.xsp.extlib.component.dojo.layout.UIDojoTabPane = cont.createTab({id:'tab1', tabUniqueKey:'tab1', tabTitle:'tab1'});
...
cont.setSelectedTab(paneTab1.getTabUniqueKey());
paneTab1.closeTab()