2016-09-29 72 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请求是异步的,因此它几乎总是在第二条日志语句后处理。 –

相关问题