yadcf:可以使用其他列的mData吗?

时间:2018-03-26 19:02:11

标签: datatables yadcf

这是我的代码的简化版本:

$('#myTable').dataTable({
  "ajax" : myURL + "/GetTableData",
  "aoColumns" : {
    {sTitle: "ID", bVisible: false},
    ...
    {sTitle: "Full Name",
      mData: null,
      mRender: function (data, type, arrRowData) {
        return mergeName(arrRowData[3],arrRowData[4],arrRowData[5])
      }
    },
    ...
    {sTitle: "Column 10", mData: 14},
  },
  "aaSorting" : [ 0, 'desc']
}).yadcf([{ column_number: 10 }]);

问题是,我有几列bVisible: false没有显示,还有自定义列,如"全名"以上。因此,mData索引与实际显示的列索引不对应。我想显示"第10列和第34列的过滤器; (这实际上是行数据中的第14列),但它尝试过滤的数据来自列索引(mData)10,而不是14.如何分别指定显示列和实际数据列 - 这可能吗?到目前为止,我发现的唯一解决方法是使用data: [...]对过滤器选项进行硬编码并将其传递给yadcf,但这种方法显然不是最理想的,只能在有限的场景下使用。

要添加的编辑(可能这更容易):如何为"全名"创建过滤器?列,以便过滤器选择正确吗?现在它只显示名字(arrRowData[3]),因为它显然假设原始行数据是整个列。但奇怪的是,过滤器确实可以在整个列上运行 - 所以如果我选择" John"从下拉列表中,它找到了John Smith和Bill Johnson。

1 个答案:

答案 0 :(得分:0)

您可以将过滤器放在容器div / span内,并使用filter_container_idfilter_container_selector指定yadcf列定义,您可以将容器放在任何您想要的位置(包括表头)