confirmDialog 未采用 selectOneMenu 的新值
confirmDialog is not taken the new value of the selectOneMenu
我需要更改数据库中的状态,但是当我更改状态时,confirmDialog 没有采用新值,它得到的是旧值
<p:selectOneMenu converter="omnifaces.SelectItemsConverter" disabled="#{myBB.currentStatus != StatusEnum.TEMP}"
id="statusSOM" onchange="PF('confirm').show();" value="#{myBB.currentStatus}" widgetVar="statusWV">
<f:selectItems itemDisabled="#{status == StatusEnum.ALL}" itemLabel="#{msgs[status.name]}"
itemValue="#{status}" value="#{myBB.statusList}" var="status" />
</p:selectOneMenu>
<p:confirmDialog widgetVar="confirm" message="Save?" header="Confirm" severity="alert">
<p:commandButton action="#{myBB.saveStatus}" oncomplete="PF('confirm').hide();"
update="form1 form2" value="Yes" />
<p:commandButton value="No" type="button"
onclick="PF('statusWV').selectValue(PF('statusWV').preShowValue.val());PF('confirm').hide();" />
</p:confirmDialog>
我能做什么?
我的声誉不足以post发表评论,抱歉。
您是否用相同的 <h:form>
标记包围了您的 JSF 代码?
我记得你在你的方法 saveStatus
中必须从 currentStatus
中获取值。
拜托,post 你的 ManagedBean 代码。
您需要在更新值时更新您的 p:confirmDialog
组件。如果您在 p:selectOneMenu
.
上使用方便的 p:ajax
,那就很简单了
<p:selectOneMenu converter="omnifaces.SelectItemsConverter" disabled="#{myBB.currentStatus != StatusEnum.TEMP}" id="statusSOM" value="#{myBB.currentStatus}" widgetVar="statusWV">
<f:selectItems itemDisabled="#{status == StatusEnum.ALL}" itemLabel="#{msgs[status.name]}" itemValue="#{status}" value="#{myBB.statusList}" var="status" />
<p:ajax event="change" update="confirmdialog" oncomplete="PF('confirm').show()" />
</p:selectOneMenu>
<p:confirmDialog id="confirmdialog" widgetVar="confirm" message="Save?" header="Confirm" severity="alert">
...
</p:confirmDialog>
我需要更改数据库中的状态,但是当我更改状态时,confirmDialog 没有采用新值,它得到的是旧值
<p:selectOneMenu converter="omnifaces.SelectItemsConverter" disabled="#{myBB.currentStatus != StatusEnum.TEMP}"
id="statusSOM" onchange="PF('confirm').show();" value="#{myBB.currentStatus}" widgetVar="statusWV">
<f:selectItems itemDisabled="#{status == StatusEnum.ALL}" itemLabel="#{msgs[status.name]}"
itemValue="#{status}" value="#{myBB.statusList}" var="status" />
</p:selectOneMenu>
<p:confirmDialog widgetVar="confirm" message="Save?" header="Confirm" severity="alert">
<p:commandButton action="#{myBB.saveStatus}" oncomplete="PF('confirm').hide();"
update="form1 form2" value="Yes" />
<p:commandButton value="No" type="button"
onclick="PF('statusWV').selectValue(PF('statusWV').preShowValue.val());PF('confirm').hide();" />
</p:confirmDialog>
我能做什么?
我的声誉不足以post发表评论,抱歉。
您是否用相同的 <h:form>
标记包围了您的 JSF 代码?
我记得你在你的方法 saveStatus
中必须从 currentStatus
中获取值。
拜托,post 你的 ManagedBean 代码。
您需要在更新值时更新您的 p:confirmDialog
组件。如果您在 p:selectOneMenu
.
p:ajax
,那就很简单了
<p:selectOneMenu converter="omnifaces.SelectItemsConverter" disabled="#{myBB.currentStatus != StatusEnum.TEMP}" id="statusSOM" value="#{myBB.currentStatus}" widgetVar="statusWV">
<f:selectItems itemDisabled="#{status == StatusEnum.ALL}" itemLabel="#{msgs[status.name]}" itemValue="#{status}" value="#{myBB.statusList}" var="status" />
<p:ajax event="change" update="confirmdialog" oncomplete="PF('confirm').show()" />
</p:selectOneMenu>
<p:confirmDialog id="confirmdialog" widgetVar="confirm" message="Save?" header="Confirm" severity="alert">
...
</p:confirmDialog>