2013-03-14 114 views
2
<h:selectOneMenu id="dropdownDevice" 
     value="#{skinningBean.currentDevice}" converter="SkinConverter"> 
     <f:selectItems value="#{skinningBean.myDevicesSI}" var="c" 
      itemValue="#{c}" /> 
     <f:ajax event="change" render="preview" /> 
</h:selectOneMenu> 

是否可以在此下拉列表中重新加載整個頁面?我需要這個,因爲我還需要在選擇其他設備時重新加載JavaScript。JSF ajax從下拉菜單重新加載整個頁面

回答

9

你不是,如果你想同步或異步執行明確表態。

如果異步,指定渲染的@all

<f:ajax ... render="@all" /> 

如果同步,由JS form.submit()調用替換<f:ajax>

<h:selectOneMenu ... onchange="this.form.submit()"> 
+0

似乎這兩種方法都不會重新加載整個頁面。那麼JavaScript不工作。 (我使用的div滑塊,當我重新呈現一些東西,被破壞了,所以我必須重新加載整個頁面) – 4ndro1d 2013-03-14 15:24:43

+1

如果連同步的方法是行不通的,那麼你的具體問題是在其他地方造成的。很難說沒有SSCCE。也許你需要PRG? – BalusC 2013-03-14 15:25:34

+0

如果我想做什麼做同樣的加執行的功能? – 2016-01-29 12:45:26

1

你可以做這個簡單的設置render="@all"屬性在f:ajax標籤:

<f:ajax render="@all" /> 

可以刪除event="change",因爲它是默認的。

相關問題