События кнопки YUI DataTable, потерянные после фильтрации - PullRequest
0 голосов
/ 24 сентября 2011

Я использую таблицу данных YUI2.В некоторых строках таблиц есть кнопка с пиктограммой, при нажатии на которую появляются дополнительные сведения о строке.

Я делаю следующее, чтобы определить панель, отображаемую с дополнительной информацией:

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

Это фильтрует и перерисовывает таблицу.Но после этого кнопки в оставшихся строках, которые должны появиться на панели, больше не работают.Ничего не происходит, когда я нажимаю на кнопки.Я уверен, что сделал что-то не так, но я не знаю что.Кажется, что кнопки и панели с правильными идентификаторами все еще доступны на странице.

Нужно ли мне как-то повторно включать прослушиватель для события click после перерисовки данных?Я не уверен, где искать попытки отладки неисправного слушателя.

1 Ответ

0 голосов
/ 24 сентября 2011

Я получил это, сделав вызов 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); 
} 
...