首页 > 解决方案 > 数据表过滤器未重绘表格

问题描述

表 A

email | data1 | data2 | data3
aaaaa | xxxx  | xxxx  | xxxx
bbbbb | xxxx  | xxxx  | xxxx
ccccc | xxxx  | xxxx  | xxxx

表 B

email | data7 | data8 | data9
aaaaa | xxxx  | xxxx  | xxxx
bbbbb | xxxx  | xxxx  | xxxx
ccccc | xxxx  | xxxx  | xxxx

我在一个页面中有两个数据表。两个表具有相同的唯一键,即电子邮件。由于表格有很多列,为了有更好的表现力,我没有将表格连接在一起。

然后这里有一些问题。当我在表 A 中进行一些过滤操作时,它如何也可以过滤表 B 中的数据?

现在我脑子里只能有一个很蠢的想法来解决它。就是在得到表A中的最新数据后。然后检索其所有的email值,最后在表B中一一比较。

但它现在不起作用。未应用过滤器。我尝试添加draw()。

$tableA.DataTable({
     drawCallback: function( settings ) {
          var api = this.api();
          var filterData = api.rows( {page:'current'} ).data();

          filteredEmailList = [];

          for(var i=0; i<filterData.length; i++){
             filteredEmailList.push(filterData[i][4]);
          }

          $tableB.column(1).data()
          .filter( function ( value, index ) {
             if(_.contains(filterEmailList, value)){
               return true;
             }else{
               return false;
             }
          });
     }
});

有什么想法吗?

谢谢。

标签: datatable

解决方案


刚刚发现我应该使用搜索 API 而不是过滤 API。


推荐阅读