我在使用帶有Ajax行爲的「渲染」屬性時遇到了一些問題。我將粘貼代碼,所以我認爲這將是一個很多更清晰:JSF 2.0 - 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」只是查看作用域JSF託管Bean與appropiate制定者/吸氣。
這樣它的作品,我的意思是,當用戶選擇選項「侮辱和不尊重」,panelGroup中「panelMonto」將得到更新,我們將看到第一個inputText的,反之,當用戶選擇選項「檢查 「用戶將看到第二個inputText。
對於這種方法,我用「F:AJAX」組件,我更新了整個@form獲得這種行爲的工作,我只是想更新panelGroup中「panelMonto」(使用render =「panelMonto」它不會在所有的工作(:表格名稱:我甚至全範圍解析嘗試panelMonto沒有結果)。
我只是想和AJAX =「idComponent」或類似的行爲渲染工作,以顯示某些部分根據用戶的選擇。
最好的問候!
注(一個解決方案)
我得到了一個解決方案(以作爲輸入 JSF rendered is not working 和一點我自己的)。我剛搬到一個新表格中,我對 感興趣,根據用戶選擇的內容進行過濾。這樣我仍然 使用@form阿賈克斯的渲染,它只會呈現這個新的形式(不是我使用的整體形式 !)Neverthless我仍然想知道 是不是使用@form的解決方案,只是組件ID。
簡而言之,'render =「@ form」'工作,但'render =「panelMonto」'不?好的,有更多的觀點嗎?是不是'panelMonto'組件實際上在另一個'UINamingContainer'組件中,比如'','','',一個複合組件或其他東西?生成的HTML輸出中的客戶端ID是什麼(瀏覽器中的打開頁面,右鍵單擊並查看源代碼*以查找它)? –
BalusC
感謝您對這方面的評論。問題是圍繞着這些東西,我設法解決它與 ... h:panelGroup>(我所做的更改是放置呈現爲panelGroup組件的屬性) –