我在顶部有一个提交按钮,通常用于对表单进行部分刷新。
当我添加了一个不会到期的 fileUpload 控件时,因为我需要进行完全刷新。但我只希望在用户添加要上传的文件时发生这种情况。因此,如果文件 Upload 为空,我想使用 partialRefresh 提交。
我可以检查一个文件是否足够容易地添加,我可以有两个具有不同刷新模式的按钮并使用 JS 隐藏它们,但这是一个笨重的解决方案。
我想做的是根据当前表单中的提交值更改提交按钮上的刷新模式。
有任何想法吗?
谢谢!
/J
我在顶部有一个提交按钮,通常用于对表单进行部分刷新。
当我添加了一个不会到期的 fileUpload 控件时,因为我需要进行完全刷新。但我只希望在用户添加要上传的文件时发生这种情况。因此,如果文件 Upload 为空,我想使用 partialRefresh 提交。
我可以检查一个文件是否足够容易地添加,我可以有两个具有不同刷新模式的按钮并使用 JS 隐藏它们,但这是一个笨重的解决方案。
我想做的是根据当前表单中的提交值更改提交按钮上的刷新模式。
有任何想法吗?
谢谢!
/J
您可以通过向按钮添加第二个事件处理程序来做到这一点:一个事件处理程序用于完全刷新,另一个用于部分刷新。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:div id="divRefresh">
<xp:label value="#{javascript:java.lang.System.currentTimeMillis()}" id="label1" />
<xp:label value="#{javascript:java.lang.System.currentTimeMillis()}" id="label2" />
</xp:div>
<xp:br></xp:br>
<xp:button value="Refresh" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.script>
<![CDATA[alert("Complete!"); return false;]]>
</xp:this.script>
</xp:eventHandler>
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="label2">
<xp:this.script>
<![CDATA[alert("Partial!");return true;]]>
</xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:view>
事件中的 CSJS 代码必须返回 false 才能停止事件。
我在发布新的流内容时在http://www.intrapages.com中执行此操作。
在上传控件的 onchange 事件中,我设置了一个 requestScope 变量。如果已设置,我将执行完全刷新。效果很好