2011-09-24 43 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的按鈕和麪板在頁面上似乎仍然可用。

難道我有辦法在數據表重繪後重新啓用click事件的監聽器嗎?我不確定在哪裏尋找嘗試調試失敗的偵聽器。

回答

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); 
}