我正在使用部分刷新更新字段,除非存在必填字段,否则工作正常。然后更新根本不起作用。有谁能解释为什么?这是我的代码。
<xp:panel rendered="true">
<xp:table>
<xp:tr>
<xp:td>My Value:</xp:td>
<xp:td>
<xp:inputText id="ValueField"
value="#{document1.ValueField}">
</xp:inputText>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td>Required Field: </xp:td>
<xp:td>
<xp:inputText id="inputText1" required="true"></xp:inputText></xp:td>
</xp:tr>
</xp:table>
</xp:panel>
<xp:panel rendered="true">
<xp:table>
<xp:tr>
<xp:td>
<xp:button id="button3" value="Set Value">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="ValueField">
<xp:this.action><![CDATA[#{javascript:document1.setValue("ValueField","12345")}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
</xp:td>
</xp:tr>
</xp:table>
</xp:panel>
如果inputText1的required属性设置为false,则更新正常。
此问题类似于我之前的查询,但为了清楚起见,我决定单独发布。
答案 0 :(得分:5)
解决此问题的方法是在事件选项卡上选中“未经验证处理数据”框
如果您执行完全刷新或部分刷新,则在JSF生命周期中处理验证阶段,这就是没有更新字段的原因。