过滤后YUI DataTable Button事件丢失

时间:2011-09-24 00:44:31

标签: filter datatable yui listener

我正在使用YUI2 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事件的侦听器?我不确定在哪里尝试调试失败的监听器。

1 个答案:

答案 0 :(得分: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); 
}