XPages - 如何指定' selectedTab'对于重复的Dojo手风琴控制

时间:2017-01-24 23:31:31

标签: dynamic dojo xpages accordion repeat

我试图通过将selectedTab ID存储在sessionScope变量中,然后将此值指定为' selectedTab'来保留动态手风琴控件的最后一个选定状态。当控件加载/刷新而不是默认为第一个选项卡时,Accordion Container的参数。

下面的代码是一个简单的XPage,它演示了我当前的位置,它存储了所选Accordion Tab的ID,但是继续默认为刷新时的第一个标签.....有人可以指出我在哪里&#39我错了。

'在页面创建时创建控件'被检查(真实)

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex"
xmlns:debug="http://www.openntf.org/xsp/debugtoolbar">
<xp:this.beforePageLoad><![CDATA[#{javascript:sessionScope.tabLabels = ["Tab1","Tab 2","Tab 3"];

if (!sessionScope.containsKey("openTab")){sessionScope.openTab = ""};
}]]></xp:this.beforePageLoad>
<xe:djAccordionContainer id="djAccordionContainer1"
    selectedTab="#{javascript:sessionScope.openTab}">
<xp:repeat id="repeat1" rows="30" value="#{sessionScope.tabLabels}"
    var="tabs" indexVar="tabIndex" repeatControls="true">
    <xe:djAccordionPane style="font-weight:bold"
        title="#{javascript:tabs}">
        <xe:this.id><![CDATA[${javascript:"djAccordionPane" + tabIndex}]]>
</xe:this.id>
        <xp:label value="Label" id="label7"></xp:label>
        <xp:br></xp:br>
        <xp:label value="Label" id="label8"></xp:label>
        <xp:br></xp:br>
        <xp:label value="Label" id="label9"></xp:label>
        <xp:eventHandler event="onShow" submit="true"
            refreshMode="complete">             
<xe:this.action><![CDATA[#{javascript:sessionScope.openTab =  
this.getParent().getId();}]]></xe:this.action>
        </xp:eventHandler>
    </xe:djAccordionPane>
</xp:repeat>    
<xe:this.dojoAttributes>
        <xp:dojoAttribute name="doLayout" value="false"></xp:dojoAttribute>
    </xe:this.dojoAttributes>
</xe:djAccordionContainer>
<xp:span style="font-weight:bold"></xp:span>
</xp:view>

0 个答案:

没有答案