Есть ли способ фильтрации столбца p: datatable, щелкнув по тексту внутри и сделав этот текст фильтром?p: datatable filter: не удается проверить компонент с пустым значением
Другими словами, если я нажимаю на идентификатор сеанса, мне бы хотелось, чтобы datatable отфильтровывал этот столбец с помощью идентификатора щелчка, как если бы я ввел его вручную в фильтр выше?
Я использую Primefaces 6
UPDATE
Это мой полная Datatable с предлагаемым решением:
<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
Решение Copy Paste из Jasper:
В таблице данных в вашем вопросе не имеет widgetVar установлен tablealltx, поэтому PF ('tablealltx'). Фильтр() завершит сбой. Вы можете проверить его на , вводя PF ('tablealltx') в консоли JavaScript вашего браузера.
Существует событие <р: Ajax события = "rowDblselect">. Если вы можете получить щелкнутый текст в поле фильтра, я думаю, вы можете завершить PF ('datatablewv'). Filter(). Я не пробовал это, хотя –