有没有办法通过单击里面的文本并使该文本成为过滤器来过滤 ap:datatable 列?
换句话说,如果我单击会话 ID,我希望数据表按单击的 ID 过滤此列,就好像我在上面的过滤器中手动输入一样?
我正在使用 Primefaces 6
更新
这是我的完整数据表和建议的解决方案:
<p:dataTable id="tablealltx" var="transaction" value="#{pastTxModel.txList}" paginator="true" rows="20" sortBy="#{transaction.createdDate}" sortOrder="descending" resizableColumns="true">
<p:column filterBy="#{transaction.session}" filterMatchMode="contains">
<f:facet name="filter">
<p:inputText id="myFilter" value="#{transactionXmlController.currentFilter}" onchange="PF('alltxform').filter()" />
</f:facet>
<p:outputLabel value="#{transaction.session}" ondblclick="document.getElementById('alltxform:tablealltx:myFilter').value = this.innerText;PF('tablealltx').filter()" >
</p:column>
</p:dataTable>
当我双击会话时,在过滤器文本框中输入了值,但过滤器本身不起作用。没发生什么事。
我正在使用 TomEE 7.0.1
解决方案 从 Jasper 复制粘贴:
您问题中的数据表没有将 widgetVar 设置为 tablealltx,因此 PF('tablealltx').filter() 将失败。您可以通过在浏览器的 JavaScript 控制台中输入 PF('tablealltx') 来测试它。