2011-09-24 7 views
0

私はYUI2 DataTableを使用しています。テーブルの行の いくつかは、行のための追加の詳細をポップアップして、クリックされたときにそのアイコンボタンがあります。YUI DataTableボタンのイベントがフィルタリング後に失われる

は、私は、追加情報が表示されますパネルを定義するには、次のやってる:

MyContainer.panel2 = new YAHOO.widget.Panel("popupPanel2", 
    { width:"650px", visible:false, constraintoviewport:true, overflow:"auto" }); 
MyContainer.panel2.render(); 
YAHOO.util.Event.addListener("showButton2", "click", 
     MyContainer.panel2.show, MyContainer.panel2, true); 

だから、すべてはそれでうまく動作します。次に、いくつかの行をフィルターにかけたときにボタンを追加しました。

MyContainer.oPushButton1.onclick = function onButtonClickp(p_oEvent) 
{ 
var filter_val = "xxx"; 
    myDataTable.getDataSource().sendRequest(filter_val, 
     {success: myDataTable.onDataReturnInitializeTable},myDataTable); 
} 

これは、テーブルをフィルタリングして再描画します。しかし、それを行った後、パネルをポップアップする残りの行のボタンはもはや機能しません。 ボタンをクリックしても何も起こりません。 私は間違ったことをしたと確信していますが、私は何を知りません。正しいIDのボタンとパネルはまだページに表示されているようです。

データテーブルの再描画後に、クリックイベントに対してリスナーを再度有効にする必要がありますか?私は失敗したリスナーをデバッグしようとする場所を探していません。

答えて

0

データソースのデータをリセットした後で、addListenerを再度呼び出すことによって、これが機能します。

MyContainer.oPushButton1.onclick = function onButtonClickp(p_oEvent) 
{ 
    var filter_val = "xxx"; 
    myDataTable.getDataSource().sendRequest(filter_val, 
     {success: myDataTable.onDataReturnInitializeTable},myDataTable); 
    YAHOO.util.Event.addListener("showButton2", "click", 
    MyContainer.panel2.show, MyContainer.panel2, true); 
}