数据表“fnFilter”无法使用添加的列

时间:2013-10-01 07:51:21

标签: jquery datatables

我需要为每一行添加一个删除图标,并在“fnRowCallBack”中使用下面的代码。

"fnRowCallback": function(nRow, aData, iDisplayIndex) {
            if(addDeleteButton) {
                var deleteIcon = $("<div>").addClass("ui-icon ui-icon-trash");
                $("<td>").addClass("delete-icon").appendTo(nRow).html(deleteIcon);
            } 
    }

但是当使用“fnFilter”时,删除图标每次都添加到行中。

图像。 http://i.imgur.com/jH4j5tb.png

我该如何避免这种情况?

1 个答案:

答案 0 :(得分:1)

Datatable缓存两件事:html(nRow节点保存在内存中,没有销毁并在每次绘制时重新创建),数据(aData存储,如果你修改它,你仍然会在以后访问修改。)

您需要检查某些状态,表示“我已将图标添加到此行”。

例如:

if(addDeleteButton && ($(nRow).find('.delete-icon').length == 0) ) { ... }

或:

if(addDeleteButton && !aData.deleteButtonAdded) {
    aData.deleteButtonAdded = true;
    ...
}