p:dataTable自动完成和ColumnToggler组合

问题描述:

当使用自动完成columnToggler在一个dataTable中,我得到列toggler列中的一个破碎的列表。 这意味着,列表不显示列名称,但一些JavaScript代码而不是(对于每列)。p:dataTable自动完成和ColumnToggler组合

columnToggler + autoComplete problem

下面是一个例子:

<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或者是有这一特定问题的任何解决方案?

+0

你为什么要在头部添加一个自动完成功能?把它放在过滤器面上,它会工作!\ – Kukeltje

将输入放入标题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属性,并添加滤镜属性

参见

+0

好主意,我缺乏关于方面名称“过滤器”的知识。但我现在看不到自动完成输入框... –

+0

'改进'的答案。 – Kukeltje

+0

好吧,因为我看不到自动完成输入框,所以我激活属性“filterBy”(对于列),但随后“completeMethod”不会触发 - 这是我当前的问题。 –