p: Datatable Filter: Komponente mit leerem Wert kann nicht validiert werden
Gibt es eine Möglichkeit, eine p: datatable-Spalte zu filtern, indem Sie auf den Text darin klicken und diesen Text zum Filter machen?
Mit anderen Worten, wenn ich auf eine Sitzungs-ID klicke, möchte ich, dass die Datentabelle diese Spalte nach der angeklickten ID filtert, als hätte ich sie manuell in den Filter oben eingegeben?
Ich benutze Primefaces 6
AKTUALISIERE
Dies ist meine vollständige Datatable 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 die Sitzung doppelklicke, wird der Wert in das Filtertextfeld eingegeben, aber die Filterung selbst funktioniert nicht. Nichts passiert
Ich verwende TomEE 7.0.1
Lösun Kopieren Einfügen aus Jasper:
Die Datentabelle in Ihrer Frage enthält kein WidgetVar, das auf tablealltx festgelegt ist, sodass PF ('tablealltx'). Filter () fehlschlägt. Sie können es testen, indem Sie PF ('tablealltx') in die JavaScript-Konsole Ihres Browsers eingeben.