1
我有下面的代碼,任何組件旁邊的表不會更新ajax調用。組件「lms-vouchers-error-div」和其他組件外側數據不會更新。我嘗試了很多方法,但它不起作用。請幫「形式」的形式IDJSF ajax組件更新外部表不起作用
<h:panelGroup id="lms-prestige-inner-div" layout="block"
styleClass="lmsPricePlanInnerDiv">
<table class="pricePlanTable">
<ui:repeat var="vo" value="#{orderOverviewBean.prestigeVouchers}"
varStatus="status">
<ui:fragment rendered="#{status.index > 0}">
<tr>
<td colspan="2">
<h2 class="#{vo.atLeastOneItemSelected ? 'remove' : 'redeem'}">
<span
class="#{vo.atLeastOneItemSelected ? 'removeline-center' : 'redeemline-center'}">or</span>
</h2>
</td>
</tr>
</ui:fragment>
<tr>
<td style="width: 302px">Voucher
#{status.index+1}.$#{-vo.amount} expires on
#{vo.expireDate}</td>
<td class="spanDisable"><h:commandLink value="> Redeem"
styleClass="removeUnderline" rendered="#{not vo.selected}"
disabled="#{vo.atLeastOneItemSelected}"
action="#{orderOverviewBean.addPrestigeVoucher}">
<f:setPropertyActionListener
target="#{orderOverviewBean.selectedVoucherItem}"
value="#{vo}" />
<f:ajax
render=":form:total-price-container :form:lms-vouchers-error-div :form:lms-prestige-div"
onevent="lmsVoucherDisplayLoader.displayLoader" />
</h:commandLink> <h:commandLink value="> Remove" styleClass="removeUnderline"
rendered="#{vo.selected}"
action="#{orderOverviewBean.removePrestigeVoucher}">
<f:setPropertyActionListener
target="#{orderOverviewBean.selectedVoucherItem}"
value="#{vo}" />
<f:ajax
render=":form:total-price-container :form:lms-vouchers-error-div :form:lms-prestige-div"
onevent="lmsVoucherDisplayLoader.displayLoader" />
</h:commandLink></td>
<ui:fragment rendered="#{vo.selected}">
<td style="width: 350px; text-align: right;">
-$#{-vo.amount}</td>
</ui:fragment>
</tr>
</ui:repeat>
</table>
</h:panelGroup>
您是否調試過服務器端代碼以確保'lms-vouchers-error-div'的狀態已更改? – 2014-11-05 12:15:37
你可以發佈代碼沒有渲染的div嗎? – ZaoTaoBao 2014-11-05 12:20:37
lms-vouchers-error-div上的渲染屬性可能是一個問題。嘗試用另一個沒有呈現屬性的容器(例如panelGroup)包圍它,並將ajax更新指向該容器。 – kaos 2014-11-05 12:26:27