jsf - 如何在单个页面中包含的两个数据表中使用相同的 ajax 事件?
问题描述
我得到了一个包含两个数据表的 .xhtml 文档。每个数据表都附加了几个 ajax 事件。第一个数据表有一个带有链接的列。如果您单击其中一个,它会打开第二个数据表,并且您可以通过一个按钮返回第一个数据表。
结构如下所示:
主页 :
<html>
<h:body>
// Stuff ...
<div>
// Including first datatable
<ui:fragment rendered="#{GenericReportControllerBean.reportType == 'object'}">
<ui:include src="/site/dialog/uiDatatableGenericReport.xhtml">
<ui:param name="uiGenericBean" value="#{GenericReportControllerBean}"></ui:param>
<ui:param name="rowStyleClass" value=""></ui:param>
</ui:include>
</ui:fragment>
// Including second datatable
<ui:fragment rendered="#{GenericReportControllerBean.reportType == 'family'}" >
<ui:include src="/site/dialog/uiDatatableFamilyReport.xhtml">
<ui:param name="uiGenericBean" value="#{GenericReportControllerBean}"></ui:param>
<ui:param name="rowStyleClass" value="#{object[3] < 0 ? 'red' : ''} #{object[3] > 0 ? 'orange' : ''}"></ui:param>
<ui:param name="subid" value="family"></ui:param>
</ui:include>
</ui:fragment>
</div>
</h:body>
</html>
数据表具有相同的结构。标题相同(这可能是一个错误,因为它们共享相同的行和相同的 ID)
<p:dataTable id="objects#{((subid==null)?'':subid)}"
rows="#{uiGenericBean.rows}" lazy="true"
// others attributes
// Some code...
<p:ajax event="rowSelect" update="objects#{((subid==null)?'':subid)}" />
<p:ajax event="rowUnselect" update="objects#{((subid==null)?'':subid)}" />
<p:ajax event="rowSelectCheckbox" update="objects#{((subid==null)?'':subid)}" />
<p:ajax event="rowUnselectCheckbox" update="objects#{((subid==null)?'':subid)}" />
<p:ajax event="filter" oncomplete="updateFilters()" />
<p:ajax event="toggleSelect" listener="#{uiGenericBean.selectAllObjects}" update="objects#{((subid==null)?'':subid)}" />
</p:dataTable>
我的问题如下:在我进入第二个数据表之前,evertyhing 运行良好。在此之后,如果我回到第一个表并选择一行,所有行都会被选中。
如果我从任何数据表中删除AJAX事件,则此行为停止,但是仅在选择一行时才能启用我的提交按钮。然后没有 ajax 事件和更新,我的按钮永远不会启用。
我还注意到,如果我从任何表中删除更新属性但让 ajax 事件,问题仍然存在。
我试图更改两个表的 id,但它仍然不能解决问题。
我还考虑将 ajax 事件放在主页中,但是这些表在程序的其他页面中使用。
知道为什么我有这种行为以及如何避免它吗?
解决方案
推荐阅读
- apache-poi - 使用 Apache poi 在 powerpoint 中创建一个表
- android - android和matlab中的通道图像对比
- java - 当依赖 SimplePizzaFactory 时,PizzaStore 将如何接受不同的工厂?
- angular - Angular 4获取组件父元素的高度
- linux - 为什么 cat <<< $VAR1 会丢失换行符?
- c# - 标签与字符中断 - 自动在 Redmi Note 4 设备中
- javascript - Vue路由器在关闭嵌套路由时更新父组件
- php - 通过具有“/”的日期对多个数组进行排序
- ios - 如何将配置传递给 KinWebBrowserViewController?
- python-3.x - 我想使用 Python3 BeautifulSoup 和 requests 模块从 https://mycurrentlocation.net/ 中提取纬度、经度和准确度