Доста съм използвал динамичния контрол на съдържанието с формула за динамична страница, но тя винаги е била изчислявана при зареждане на страницата и не е променяна. Работих върху тест, при който искам да избера коя страница да се показва въз основа на разгъващ се списък и събитие onChange. Направих пълно опресняване, както и няколко различни частични опреснявания, но изглежда, че страницата се изчислява само при зареждането на страницата. Страниците, които това извиква, не правят нищо, освен да показват "Първа страница", "Втора страница" и т.н. Изявленията за печат се отпечатват само от първоначалното зареждане на страницата. Направих частично опресняване на "customeControlInclude" "dynamicContentView" и пълна актуализация в събитието onChange на разгъващия се списък, но нито едно от тях не кара dynamicControlView да променя заредената страница.
Така че въпросът ми е „Има ли начин да накарам динамичния контрол на съдържанието да преизчисли и покаже подходяща страница?
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:this.resources>
<xp:script src="/js Utils.jss" clientSide="false"></xp:script>
</xp:this.resources>
<xp:panel id="thisPage">
<xp:text escape="true" id="computedField1" value="#{sessionScope.ssSelectedView}"></xp:text>
 
<xp:br></xp:br>
<xp:br></xp:br>
<xp:comboBox id="comboBox1" value="#{sessionScope.ssSelectedView}"
style="width:20%">
<xp:selectItem itemLabel="Test One"></xp:selectItem>
<xp:selectItem itemLabel="Test Two"></xp:selectItem>
<xp:selectItem itemLabel="Test Three"></xp:selectItem>
<xp:selectItem itemLabel="Test Four">
</xp:selectItem>
<xp:eventHandler event="onchange" submit="true"
refreshMode="partial" refreshId="thisPage">
</xp:eventHandler>
</xp:comboBox>
<xp:br></xp:br>
<xp:panel id="panelView">
<xp:table>
<xp:tr>
<xp:td style="width:100.0%" valign="top">
<xe:dynamicContent id="dynamicContentView">
<xp:include id="customControlIncluder">
<xp:this.pageName>
<![CDATA[${javascript:try{
var debug:Boolean = true;
if (debug) print("Select Page in xpMainInput.xsp");
var viewName:String = sessionScope.ssSelectedView;
var page:String = null;
switch(viewName){
case "test One" :
page = "ccTestOne.xsp";
break;
case "Test Two" :
page = "ccTestTwo.xsp";
break;
case "Test Three" :
page = "ccTestThree.xsp";
break;
case "Test Four" :
page = "ccTestFour.xsp";
break
//Add additional case statements for each additional Application
}
if (page == null){
if (debug) print("Error in Main page is null ");
return "ccTestOne.xsp";
}else{
if (debug) print("xpMain page = " + page)
return page;
}
}catch(e){
print("Error Define Page in xpMain.xsp " + e.string());
}}]]>
</xp:this.pageName>
</xp:include>
</xe:dynamicContent>
</xp:td>
</xp:tr>
</xp:table>
</xp:panel>
</xp:panel>
</xp:view>