2011-10-21 79 views
0

我在使用帶有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。

+1

簡而言之,'render =「@ form」'工作,但'render =「panelMonto」'不?好的,有更多的觀點嗎?是不是'panelMonto'組件實際上在另一個'UINamingContainer'組件中,比如'','','',一個複合組件或其他東西?生成的HTML輸出中的客戶端ID是什麼(瀏覽器中的打開頁面,右鍵單擊並查看源代碼*以查找它)? – BalusC

+0

感謝您對這方面的評論。問題是圍繞着這些東西,我設法解決它與 ...(我所做的更改是放置呈現爲panelGroup組件的屬性) –

回答

0

,如果你有

render=":panelMonto" 

render=":formName:panelMonto" 

仍然沒有工作檢查什麼?

這應該只

render="panelMonto" //because is in the same form 

工作,你可以添加更多的代碼? 你也可以檢查你的瀏覽器(在鉻:右鍵單擊,檢查元素,網絡),看看是否有任何活動?也許是因爲你呈現相同的東西...