-1

目前正在开发一个使用 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"/>

作为对话框。

4

1 回答 1

1

目前,我没有完整的解决方案,但让我们分析一下您的代码。这已经够有趣了。

首先,您要根据所选行打开一个模式对话框。(实际上,“模态对话框”位是有根据的猜测)。但是,您将onclick处理程序添加到整个表中。JSF 不会使行显式化,因此您必须将onclick处理程序添加到表的单元格中。为简单起见,假设您已将onclick处理程序分配给表中的按钮。

其次,每个 BootsFaces 版本 <= 0.9.1 中都有一个错误,它会阻止您检测选择了哪一行。所以你必须使用 >= 0.9.2 的版本。在撰写本文时,这是开发人员快照 BootsFaces-0.9.2-SNAPSHOT。有关如何获取它的信息,请参阅问题 369,有关我最近解决的行选择错误,请参阅问题 486 。

第三,您应该记住,onclick处理程序的 JavaScript 代码在 AJAX 请求之前执行。我只能猜测,但我假设您想根据行选择更新模态对话框的内容。我还假设内容是由 AJAX 请求定义的。如果这两个假设都是正确的,那么你就有问题了。该onclick处理程序在 AJAX 调用之前执行。所以我建议你使用oncomplete一些 BootsFaces 组件提供的 JavaScript 回调处理程序,例如b:commandButton.

就像我之前说过的那样,这不是一个完整的解决方案,但我希望它仍然有所帮助。

于 2016-09-29T21:10:40.730 回答