3
我試圖更新微調更新形式
<p:spinner id="spin1" min="1" max="#{editPhoto.max}" size="1"
value="#{editPhoto.page}" validator="#{editPhoto.validator()}"
valueChangeListener="#{editPhoto.refreshForm()}" />
<p:commandButton value="Insert" action="#{editPhoto.insertImage()}" />
<p:commandButton value="Delete" action="#{editPhoto.deleteImage()}" />
我把破發點中的價值,setPage的變化的基礎上,以及在驗證我的形式和valueChangeListener,它擊中他們只有當我按下commandButton。我試過immediate =「true」,但沒有增加任何內容。我真正想要的是知道值何時發生了變化,但不必擊中commandButton。
在以前question BalusC建議選用
<f:event type="preRenderView" listener="#{nextpageBacking.onPreRenderView}" />
我懷疑我需要類似的東西在這裏,但什麼樣的事件,我應該找誰?也許不是,那麼我需要做什麼才能在微調器中獲得更改而不必按下commandButton?謝謝,Ilan
我的bean是查看範圍。也許答案是使用另一個請求scoped-bean,並讓請求scoped-bean對視圖範圍的bean進行操作?如果這看起來像正確的方向,我會試試這個。
此外,Primefaces展示中還有一些示例,其中一個用於Ajax Spinner:http://www.primefaces.org/showcase/ui/spinner.jsf –
絕對美麗。當你知道答案時,這一切都很簡單。我將刪除存在的驗證程序,以便我可以捕捉到一個斷點。另外我看到你更新了我的bean refreshForm應該做的表單。也許我在這種情況下甚至不需要聽衆。謝謝你的美麗答案。 –
請注意,在我的示例中'process'屬性設置爲'@ this',所以微調器更改將僅反映微調器本身的更改。但是你也可以把它改成'@ form'。通常你不需要監聽器功能來刷新表單。 –