Gibt es eine Möglichkeit, eine p: datatable-Spalte zu filtern, indem Sie auf den darin enthaltenen Text klicken und diesen Text zum Filter machen?p: Datatable-Filter: kann Komponente mit leerem Wert nicht validieren
Mit anderen Worten, wenn ich auf eine Sitzungs-ID klicke, möchte ich, dass die Datentabelle diese Spalte nach der angeklickten ID filtert, als ob ich sie manuell im obigen Filter eingegeben hätte?
Ich bin mit Primefaces 6
UPDATE
Dies ist meine komplette Datentabelle mit der vorgeschlagenen Lösung:
<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>
Wenn ich auf der Sitzung klicken verdoppeln, Der Wert wird in das Filtertextfeld eingegeben, die Filterung selbst jedoch nicht t arbeiten. Nichts passiert.
Ich bin mit TomEE 7.0.1
Lösung Copy Paste von Jasper:
Die Datentabelle in Ihrer Frage keine widgetVar hat auf tablealltx, so PF ('tablealltx'). filter() wird fehlschlagen. Sie können es testen, indem Sie eingeben PF ('tablealltx') in der JavaScript-Konsole Ihres Browsers.
Es ist das Ereignis. Wenn Sie den angeklickten Text im Filterfeld finden können, können Sie mit PF ('datatablewv') filter() enden. Ich habe es nicht versucht, aber –