2017-02-09 51 views
0

當使用自動完成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

回答

2

將輸入放入標題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」不會觸發 - 這是我當前的問題。 –