以下代码在应用筛选后不会正确更新当前datatable行计数。有时我必须在输入文本后按两次过滤器输入框中的enter键,这样计数才会正确更新。而且有时它只是在我键入文本而不是按enter键之后才起作用。有时我也可以只键入一次enter键,计数就会正确更新。我不明白为什么我会有这种不同的行为。也许JSF/Primefaces专家可以帮助我理解这一点?
<h:form id="summaryForm">
...
<p:tabView id="summaryTabView">
...
<p:tab id="allTab" title="All">
...
<script type="text/javascript">
//<![CDATA[
function updateAllRecordCount(){
var rowCount = PF('allTblWidget').paginator.cfg.rowCount;
//alert(rowCount);
var output = document.getElementById('summaryForm:summaryTabView:allTable:allCount');
if (output != null){
output.innerHTML = rowCount + " Records";
}
}
//]]>
</script>
<p:dataTable widgetVar="allTblWidget"
id="allTable"
var="pb"
value="#{statisticsBean.all}"
emptyMessage="No data available!"
rowKey="#{pb.rowId}"
scrollable="true" scrollHeight="440"
selection="#{statisticsBean.selectedBean}"
selectionMode="single"
editable="true"
editMode="cell"
paginator="true"
rows="300"
paginatorAlwaysVisible="false">
<p:ajax event="filter" oncomplete="updateAllRecordCount();"/>
<f:facet name="header">
<p:menubar styleClass="tableMenuClass">
...
<f:facet name="options">
<h:outputText id="allCount" style="font-size:14px;" value="#{statisticsBean.all.size()} Records"/>
</f:facet>
</p:menubar>
</f:facet>
...
下面列出的变通方法允许我在过滤后显示正确的记录计数--我基本上使用了下面datatable元素中列出的最后3个分页属性,在过滤后显示正确的记录计数,并取出了前面的filter事件、JavaScript函数和outputText字段。这个答案并没有真正回答最初的问题(我认为PF5.1中可能存在一个bug),但至少它提供了一个解决方案。
<p:dataTable widgetVar="allTblWidget"
id="allTable"
var="pb"
value="#{statisticsBean.all}"
emptyMessage="No data available!"
rowKey="#{pb.rowId}"
scrollable="true" scrollHeight="440"
selection="#{statisticsBean.selectedBean}"
selectionMode="single"
editable="true"
editMode="cell"
paginator="true"
rows="300"
paginatorAlwaysVisible="true"
paginatorTemplate="{CurrentPageReport}"
currentPageReportTemplate="{totalRecords} Records">
我有一个Primefaces datatable位于 现在,当我向一列添加筛选器时,datatable在应用筛选器时不再正确显示相关信息。 调试时,我可以看到被调用,并且它似乎可以正常工作(添加元素),但是当我在浏览器中检查html时,只有输入和纯文本。 以下是筛选前datatable的呈现: 下面是选择筛选器值后datatable的呈现: 这里有一些代码可以再现这个问题: 我使用的是JSF2.2
安全性:编码器:AppBundle\Entity\Usuario:算法:bcrypt#https://symfony.com/doc/current/security.html#b-配置如何加载用户提供程序:db\U提供程序:实体:类:AppBundle:Usuario
我希望能够获得我已经提交给执行服务(特别是线程池执行器)的Callable(因此它们不能通过getQueue())。 我试图创建一个子类来覆盖beForeExecute之前的
我在一个网站上做一些代码清理/验证,遇到了一个问题。该站点有一个主菜单(菜单栏),其中应显示当前页面。 菜单结构如下所示: 根据WAI-ARIA规范,角色menuItem上不允许状态aria选择:http://www.w3.org/TR/wai-aria/states_and_properties#aria-selected.我也找不到任何似乎将menuproject标记为选择的menuproje
我有一个颜色编辑JDialog,用户可以在其中添加/删除/编辑颜色。颜色显示在从DB填充的Jtable中。UI包含一个txtField,由于TableRowSorter,它允许过滤。Jtable使用默认的TableModel,在用户选择删除一行之后,例如我做了一个model.remove行(tableau.getSelectedRow())来刷新模型。 我的问题是:当用户不使用分类器并单击dele
这一组数据在进行groupby前已经完成筛选,但进行groupby聚合后的结果显示是利用未筛选的数据进行的聚合,就像下面的结果,在groupby前已经完成点击量非0过滤,但最后仍存在含0的资源,询问chatGPT给的方案是可能用索引前的数据进行的聚合,重置索引后仍无法解决,请教大牛是否遇到过类似的问题,虽然可以在聚合后重新进行filter过滤,但这个问题搞得很焦灼 代码源文本