2012-01-08 11 views
5

muszę umieścić globalną filtr p: DataTable poza samym stole,Czy można umieścić filtr globalny poza p: dataTable?

Chciałbym, aby umieścić go na zewnątrz formy, w którym istnieje DataTable, ale na początku umieszczenie filtra wewnątrz FORMIE elementu datatable ale poza DataTable będzie sam wystarczyć

Nawet kiedy umieścić filtr wewnątrz FORMIE elementu datatable ale poza DataTable sobie, że przestanie działać (działa 100% wewnątrz p: sam dataTable)

Oto definicja samego filtra

<p:inputText id="globalFilter" onkeyup="myTableNameTable.filter()" style="width:150px;"/> 

Odpowiedz

7

Rozwiązałem problem za pomocą przycisku "proxy".

ustawić h:panelGroup otaczających <p:inputText id="globalFilter"> z display:none stylu, tak:

<h:panelGroup style="display:none"> 

następnie dodaje się tekst wejściowy w zupełnie innym miejscu

<h:panelGroup id="myFilter" > 
    <h:inputText id="myFilter_text" /> 
</h:panelGroup> 

i związał funkcję JS, który wykorzystuje jQuery on() (w starszej wersji jQuery można użyć delegete()), podobnie jak to:

function searchKeyPressedHandler() { 
     $(document).on("keyup", "#myFilter input", function (event) { 
      var searchValue = document 
       .getElementById('myFilter_text').value; 

      $("#myTableId\\:globalFilter").val(searchValue); 
      $("#myTableId\\:globalFilter").trigger('keyup') 
     }); 
    } 

użył $() i(), ponieważ używam jQuery 1.7.1 dodatkową bibliotekę, inaczej musiałem użyć jQuery() i zamiast

$(document).on("keyup", "#myFilter input", 

użyłbym

jQuery(document).delegate("#myFilter input","keyup",... 

(właśnie zmieniłem pierwszy i drugi argument)

To wszystko i mogę umieścić filtr w dowolnym miejscu.

Powiązane problemy