2016-09-29 71 views
-1

當前正在使用Bootsfaces的項目上工作。我有一個bootsfaces數據表,我需要在選擇行時打開一個對話框。請諮詢如何着手。如何使Bootsfaces數據表顯示行選擇對話框

下面是代碼

<b:dataTable onclick="$('viewBKDDialog').show()" 
           update=":ViewBKDForm" 
           value="#{bookingAdminController.itemsBookDet}" 
           var="car" ajax="true" select="true" responsive="true" > 
</b:dataTable> 

而我會使用

<ui:include src="ViewBookingDetails_all.xhtml"/> 

如對話框。

+0

請顯示你已經嘗試過...不是我能夠幫助(沒有bootsfaces用戶),但它需要其他人 – Kukeltje

+0

對不起..我的錯誤。更新代碼..我知道..如果這將是足夠的... onclick是什麼嘗試..我不知道這樣做... – rahul

+0

有人可以upvote這個問題?恕我直言,這個問題很好,可能是由於最新的@rahul編輯解決的原因而導致的。如果問題被刪除,那將是一件可惜的事情。 –

回答

0

目前,我沒有完整的解決方案,但讓我們來分析你的代碼。這很有趣。

首先,您要打開基於選定行的模式對話框。 (實際上,「模態對話」位是一個有教養的猜測)。但是,您將onclick處理程序添加到整個表中。 JSF不會使行顯式顯示,因此您必須將onclick處理程序添加到表格的單元格中。爲了簡單起見,我們假設您已將onclick處理程序分配給表中的按鈕。

其次,每個BootsFaces版本< = 0.9.1中都存在一個錯誤,它會阻止您檢測哪個行被選中。所以你必須使用> = 0.9.2的版本。在撰寫本文時,這是開發者快照BootsFaces-0.9.2-SNAPSHOT。請參閱issue 369 on how to get itissue 486 on the row-select bug我最近已解決。

第三,您應該記住onclick處理程序的JavaScript代碼在AJAX請求之前執行。我只能猜測,但我假設你想根據行選擇更新模式對話框的內容。我還假設內容是由AJAX請求定義的。如果兩個假設都是真的,那麼你就有問題了。 onclick處理程序在AJAX調用之前執行。因此,我建議您使用由某些BootsFaces組件提供的oncomplete JavaScript回調處理程序,如b:commandButton

就像我以前說過的那樣,這不是一個完整的解決方案,但我希望它有幫助。

+0

我明白,onclick是JavaScript處理程序,將在ajax請求後調用。讓我嘗試完成並更新bootsures版本。今天將結果返回給你。感謝您的建議。 – rahul

+0

不是之後。 'onclick'處理程序在'f:ajax'請求被觸發之前執行。當你使用BootsFaces方式時,你有更多的控制:'onclick =「console.log(」AJAX之前「); ajax:myBean.doSomething(); javascript:console.log(」在AJAX之後「)'在發送AJAX請求之後會顯示第二條日誌語句,但AJAX請求是異步的,因此它幾乎總是在第二條日誌語句後處理。 –

相關問題