p:dataTable自动完成和ColumnToggler组合
当使用自动完成和columnToggler在一个dataTable中,我得到列toggler列中的一个破碎的列表。 这意味着,列表不显示列名称,但一些JavaScript代码而不是(对于每列)。p:dataTable自动完成和ColumnToggler组合
下面是一个例子:
<p:commandButton id="showColsButton" type="button" value="Show Columns" />
<p:columnToggler datasource="myDataTable" trigger="showColsButton" />
<p:dataTable id="myDataTable" var="row" ...>
<p:column sortBy="#{row.myCol1}">
<f:facet name="header">
<div><h:outputText value="My Column 01" /></div>
<p:autoComplete ...>
<p:ajax event="itemSelect" update="myDataTable" />
</p:autoComplete>
</f:facet>
<h:outputText value="#{row.myCol1}" />
</p:column>
</p:dataTable>
这是一个bug或者是有这一特定问题的任何解决方案?
将输入放入标题facet无效。如果您想将其用作过滤器或其他东西,请将其放入f:facet name="filter"
。
<p:dataTable id="myDataTable" var="row" ...>
<p:column filterBy="#{row.myCol1}" sortBy="#{row.myCol1}">
<f:facet name="header">
<div><h:outputText value="My Column 01" /></div>
</f:facet>
<f:facet name="filter">
<p:autoComplete ...>
<p:ajax event="itemSelect" update="myDataTable" />
</p:autoComplete>
</f:facet>
<h:outputText value="#{row.myCol1}" />
</p:column>
但是,您可能需要改进的过滤器使用不使用p:ajax
但使用onchange=PF('dataTableWidget').filter()
的方式,增加了widgetVar属性,并添加滤镜属性
参见
好主意,我缺乏关于方面名称“过滤器”的知识。但我现在看不到自动完成输入框... –
'改进'的答案。 – Kukeltje
好吧,因为我看不到自动完成输入框,所以我激活属性“filterBy”(对于列),但随后“completeMethod”不会触发 - 这是我当前的问题。 –
你为什么要在头部添加一个自动完成功能?把它放在过滤器面上,它会工作!\ – Kukeltje