2017-10-17 48 views
0

當前我正在嘗試打開一個模式對話框,其中包含填充來自支持bean的值的表單。由於每個按鈕都與表中的一個條目鏈接,所以該bean被加載(或者應該被加載,因爲目前不工作)與按鈕中提供的對象。當前的按鈕代碼如下。無法使用onclick更新引導程序模式

模式和觸發事件的按鈕位於同一頁面上,但此頁面有兩個bean。一種用於模式的功能,當您單擊按鈕(用於修改給定對象)時應立即顯示,另一種用於在主窗口中打印所有數據。

基本上我想要做的是實例化一個bean,將給定的對象傳遞給第二個bean通過請求發出的@PostConstruct方法,並且在所有進程完成後顯示模態,刷新模態然後展示它。

<b:button value="" 
    icon-size="2x" 
    onclick="#{bean.dummy()}" 
    style="height: 64px; width: 64px; float: right; border: none; margin-top: 25px; border-radius: 0px;" 
    oncomplete="$('.config_modal').modal()"> 
     <f:param name="action" value="#{bean.value}" /> 
</b:button> 

除了那段代碼,我已經嘗試了下面列出的幾個修改。前一個是最近的。

  • 此前JS modal()調用是在'onclick'事件中。
  • 添加了一個'虛擬'方法,因爲模態對話框從不顯示實際代碼,因爲我認爲我需要一種觸發器。
  • 它不是b:commandButton,因爲它刷新整個頁面,對話框從不顯示。
+0

你可以嘗試'oncomplete =「$('。config_modal')。modal('true');」'並確保b:模態''將styleClass作爲config_modal,即'b:modal id =「config_modal」styleClass =「config_modal」' – MitchBroadhead

+0

,但在頁面重新載入後oncomplete不會觸發。你需要使用ajax。例如''。你想重繪的頁面的任何部分必須在'' – MitchBroadhead

+1

@MitchBroadhead感謝Mitch的答覆,我在你的第二個評論中做了你的建議,但仍然無法工作,我仍然不知道我是什麼做錯了......價值在另一個bean中被正確接收。 好吧,在我的情況發現了錯字,從裏面.modal()刪除**'真'**,現在它的工作。非常感謝!回覆一個答案,以便我可以接受它。 – SkPr0

回答

0

oncomplete在頁面重新加載後不會觸發。你需要使用ajax。例如<h:form><b:commandButton value="click" action="#{bean.dummy}" oncomplete="$('.config_modal').modal('true');"><f:ajax render="@form"/></b:commandButton></h:form>。你想重繪的頁面的任何部分必須位於<h:form>

相關問題