目前正在开发一个使用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 :(得分:1)
目前,我没有完整的解决方案,但让我们分析您的代码。这很有趣。
首先,您要根据所选行打开模式对话框。 (实际上,“模态对话框”位是一个有根据的猜测)。但是,您将onclick
处理程序添加到整个表中。 JSF不会使行显式,因此您必须将onclick
处理程序添加到表的单元格中。为简单起见,我们假设您已将onclick
处理程序分配给表中的按钮。
其次,每个BootsFaces版本&lt; = 0.9.1都有一个错误,阻止您检测选择了哪一行。所以你必须使用版本&gt; = 0.9.2。在撰写本文时,这是开发人员快照BootsFaces-0.9.2-SNAPSHOT。请参阅我最近解决的issue 369 on how to get it和issue 486 on the row-select bug。
第三,您应该记住,onclick
处理程序的JavaScript代码是在AJAX请求之前执行的。我只能猜测,但我假设你想根据行选择更新模态对话框的内容。我还假设内容是由AJAX请求定义的。如果两个假设都是真的,那么你就遇到了问题。 {AJ}调用之前执行onclick
处理程序。因此,我建议您使用某些BootsFaces组件提供的oncomplete
JavaScript回调处理程序,例如b:commandButton
。
就像我之前说过的那样,这不是一个完整的解决方案,但我希望它有所帮助。