我希望我的頁面儘可能地對用戶友好,並且我有一個想法,但是我想解決它的方式有點困難。如何在JSF中將OneMenu元素更改爲outputText
我正在使用primefaces,我希望有一個selectOneMenu元素,它將selectOneMenu中所選變量的值更改爲outputText的值。任何人都有一些漂亮的想法?
我希望我的頁面儘可能地對用戶友好,並且我有一個想法,但是我想解決它的方式有點困難。如何在JSF中將OneMenu元素更改爲outputText
我正在使用primefaces,我希望有一個selectOneMenu元素,它將selectOneMenu中所選變量的值更改爲outputText的值。任何人都有一些漂亮的想法?
這可以通過ajax和部分渲染完成。這裏是我的想法的草圖(未經測試,在普通的JSF):
<h:panelGroup id="wrapper">
<h:selectOneMenu value="#{myBean.myValue}"
rendered="#{myBean.myValue == someInitialValue}" ...>
<f:ajax render="wrapper"/>
... (your select items here)
</h:selectOneMenu>
<h:outputText value="#{myBean.myValue}"
rendered="#{myBean.myValue != someInitialValue}" .../>
</h:panelGroup>
而這正是它的作用:
的h:selectOneMenu
值將被初始化,如果是菜單將僅呈現初始值。
在更改值時,周圍面板組將被重新渲染,隱藏菜單並讓h:outputText
顯示。
您需要一個包裝面板組,因爲outputText在頁面加載時不存在。如果您的表格很小,您也可以使用[email protected]
或其他任何周圍的容器。那你就不需要包裝了。
感謝您的回覆!我以同樣的方式思考,但我認爲可能有一些primefaces屬性可以幫助最小化代碼。 – 2012-08-09 10:22:05
是的,這將是一個很好的補充,就像[入門](http://www.primefaces.org/showcase-labs/ui/inplace.jsf)selectOneMenu ....編輯:哦,只是注意到,有給定鏈接上的選擇菜單。也許你應該仔細看看這個例子。 – 2012-08-09 11:33:18
如果您的意圖是禁止用戶第二次選擇價值,那麼可以禁用價值變更 – rags 2012-08-09 09:55:47