【发布时间】:2014-06-19 16:00:00
【问题描述】:
我有一个动态视图,它使用 viewScope 变量汇总屏幕上显示的内容,我希望它重置我的 viewScope 变量。它没有,而且似乎没有执行我放在那里的任何脚本。
<xp:pager partialRefresh="true" id="upperPager"
for="viewRowRepeat" styleClass="tsDynamicViewPager" pageCount="8"
alwaysCalculateLast="true">
<xp:pagerControl id="pagerControl4" type="First">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="viewRowRepeat">
<xp:this.action><![CDATA[#{javascript:dBar.info("pagerControl4 clicked");
clearColumnTotals();}]]></xp:this.action>
<xp:this.script><![CDATA[alert("Clicked!");]]></xp:this.script>
</xp:eventHandler>
</xp:pagerControl>
<xp:pagerControl id="pagerControl5" type="Group">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:dBar.info("pagerControl5 clicked");
clearColumnTotals();}]]></xp:this.action>
<xp:this.script><![CDATA[alert("Clicked!");]]></xp:this.script>
</xp:eventHandler>
</xp:pagerControl>
<xp:pagerControl id="pagerControl6" type="Last">
<xp:eventHandler event="onclick"
submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:dBar.info("pagerControl6 clicked");
clearColumnTotals();}]]></xp:this.action>
<xp:this.script><![CDATA[alert("Clicked!");]]></xp:this.script>
</xp:eventHandler>
</xp:pagerControl>
</xp:pager>
不用说,我不知道我是否编码不正确,或者 pagerControls 是否不应该有任何 onclick 事件。我知道 IDE 不会为寻呼机本身显示一个。
【问题讨论】:
-
如果你不能让 onlick 工作,那么也许你可以制作一个客户端脚本,在单击寻呼机按钮时执行 ajax 调用,以便定向到更新 viewScope 变量的 XAgent 和重定向回当前页面。看起来很麻烦,但如果这是你需要做的......
-
但是,问题是,我无法为 pagercontrol 运行 onclick。 CSJS 或 SSJS 中没有任何内容。
-
如果分页按钮有一个与之关联的类,您可以使用 jQuery。例如,把它作为一个类为“pleaseWork”的跨度,然后在 jQuery 中,选择所有类为 .pleaseWork 的跨度内的所有按钮(你可以使用 jQuery 选择器获得非常细化),然后有一个运行你的 ajax 的函数单击按钮时调用。在页面加载时加载它。它必须是可能的,因为一旦出现在页面上,所有控件都只是 DOM 的一部分。提示:首先通过在单击时创建一个警报(“你点击了我”)消息来使其工作,然后处理 ajax 片段。