我正在尝试将onClick事件放在dataView中的寻呼机上。我希望onClick事件更新sessionScope变量。我已经添加了代码并对其进行了测试,我无法让它工作。我制作了一个测试按钮并使用相同的onClick事件进行设置,并且变量已正确更新。
现在,如果我点击寻呼机它可以正常工作并通过dataView页面。但是,它不会更新sessionScope变量。可能导致这种情况的任何想法?
<xp:pager partialRefresh="true" id="pager8" xp:key="pagerBottomLeft"
styleClass="mblFooterLeft">
<xp:this.rendered><![CDATA[#{javascript:isPagerDisplayed();
}]]></xp:this.rendered>
<xp:pagerControl id="pagerControl2" type="Previous">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="testLabel">
<xp:this.action><![CDATA[#{javascript:incPagerDisplay();
sessionScope.pagerDisplay++;}]]></xp:this.action>
</xp:eventHandler>
</xp:pagerControl>
</xp:pager>
非常感谢任何帮助。
答案 0 :(得分:0)
当您要求对 sessionScope 'd变量进行onClick事件更新时,从您的代码中可以看出,您的最终尝试是保存用户所在的页面状态,因此他们可以离开/返回并保留 sessionScope var。假设您正在尝试使用它,我建议您查看并使用xe:pagerSaveState control。
Brad Balassaitis写了a blog post将其与数据视图一起使用,这可能会对您有所帮助。 Oliver Busse稍微调整了一下这个实现,demonstrates with his OSnippet;对SSJS电话的按摩。
<xe:pagerSaveState id="pagerSaveState1" refreshId="theView" partialRefresh="true">
</xe:pagerSaveState>
<xp:this.beforePageLoad><![CDATA[#{javascript:viewStateBean.restoreState = true;}]]></xp:this.beforePageLoad>