[英]JSF 2.0 - Ajax and Rendered Components
將“ rendered”屬性與ajax行為結合使用時遇到一些問題。 我將粘貼代碼,因此我認為它會更加清晰:
<h:selectOneMenu value="#{registrarVentaController.esCobroChequeString}">
<f:selectItem itemLabel="Efectivo" itemValue="false"/>
<f:selectItem itemLabel="Cheque" itemValue="true"/>
<f:ajax execute="@this" render="@form"/>
</h:selectOneMenu>
<h:panelGroup id="panelMonto">
<span>Monto:</span>
<h:inputText value="#{registrarVentaController.monto}" rendered="#{registrarVentaController.banCobroCheque}"/>
<h:inputText value="#{registrarVentaController.monto}" rendered="#{not registrarVentaController.banCobroCheque}"/>
</h:panelGroup>
我的“#{registrarVentaController}”只是一個具有適當設置器/獲取器的View范圍JSF托管Bean。
以這種方式,我的意思是,當用戶選擇選項“ Efectivo ”時,panelGroup“ panelMonto ”將得到更新,我們將看到第一個inputText,相反,當用戶選擇選項“ Check ”時,用戶將看到第二個inputText。
對於這種方法,我使用了“ f:ajax ”組件,在其中更新了整個@form以使此行為起作用,而我只想更新panelGroup“ panelMonto ”(使用render =“ panelMonto”,這根本不起作用(我什至嘗試使用全范圍分辨率:formName:panelMonto ,但沒有結果)。
我只想使用ajax =“ idComponent”或類似行為渲染工作,以根據用戶選擇的內容顯示某些部分。
最好的祝福!
注意(一種解決方案)
我設法得到了一個解決方案(作為輸入, JSF呈現為行不通 ,我有點不自在)。 我剛剛將新的表單移到了新的表單中,我將根據用戶選擇的內容對其進行過濾。 這樣,我仍然使用@form ajax的render,它將只渲染這個新表單(不是我正在使用的整個表單!)不過,我仍然想知道是否存在不使用@form以及僅使用組件的解決方案ID。
如果您與檢查該怎么辦
render=":panelMonto"
不
render=":formName:panelMonto"
還是行不通?
這應該只與
render="panelMonto" //because is in the same form
您可以添加更多代碼嗎? 您還可以使用瀏覽器(在Chrome中:右鍵單擊,檢查元素,網絡)進行檢查,以查看是否有任何活動嗎? 也許是因為你在渲染同一件事...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.