有沒有辦法通過點擊裏面的文本並使該文本成爲過濾器來過濾p:datatable列?p:datatable過濾器:無法驗證具有空值的組件
換句話說,如果我點擊一個會話ID,我希望數據表能夠通過點擊的ID來過濾這個列,就像我在上面的過濾器中手動輸入它一樣?
我使用Primefaces 6
UPDATE
這是我的完整的數據表與建議的解決方案:
<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
解決方案 從複製粘貼碧玉:
在你的問題沒有widgetVar數據表設置爲 tablealltx,所以PF( 'tablealltx')。filter()會失敗。您可以在瀏覽器的JavaScript控制檯中通過輸入PF('tablealltx') 來測試它。
有事件
。如果你可以在filter-field中得到點擊的文本,我想你可以用PF('datatablewv').filter()結束。我還沒有嘗試,雖然 –