2012-01-08 8 views
5

テーブルの外側にp:dataTableのグローバルフィルタを配置する必要がありますグローバルフィルタをp:dataTableの外部に配置することはできますか?

データテーブルが存在するフォームの外に配置したいのですが、データテーブル自体の外、私はDataTableのFORM内ではなく、データテーブル自体の外にフィルタを配置する場合でも

、それは動作を停止十分でしょう(それはPの内側に100%に動作します:dataTableの自身)

ここで定義されフィルタそのものの種類

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

答えて

7

「プロキシ」ボタンを使用して問題を解決しました。

は、私はこのように、 display:noneスタイルで <p:inputText id="globalFilter">を囲ん h:panelGroupを設定します。その後、完全に他の場所

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

に入力されたテキストを追加し、使用するJS関数をバインド

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

jQuery on()関数(古いjQueryバージョンでは、 delegete()を使用できます):

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

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

$()と上の()私は、そうでない場合は、私がjQuery()を使用していたし、代わりに

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

の私は

jQuery(document).delegate("#myFilter input","keyup",... 
を使用することになり、追加のjQuery 1.7.1ライブラリを使用していますので、

(最初と2番目の引数をちょうど入れ替えた)

それだけです。フィルタの入力は自由にできます。

関連する問題