我们目前正在开发基于 Web 的 CRM。除了一个令人沮丧的问题外,该项目进展顺利。
我们对应用程序中的几乎每个可排序表都使用DataTable jQuery 插件。这是活动事件的列表。
如您所见,第三列代表事件的类型(工单、变更请求、服务请求等)
用户要求在上表顶部放置一个过滤器框来过滤事件类型。例如,如果您选择“仅票”,则所有其他类型都将被隐藏。到目前为止,一切正常。
为此,每一行都有一个表示事件类型的 CSS 类。
- 第 1 行:class="ticket"
- 第 2 行:class="changeRequest"
当过滤框值改变时,执行以下javascript代码
$('table.sortable').each(function() {
for (var i = 0; i < rows.length; i++) {
if ($(rows[i]).hasClass(vClass)) $(rows[i]).hide();
}
});
在哪里
- vClass = 表示事件类型的 CSS 类
- rows = 所有数据表行,来自“$(SomeDatatable).dataTable().fnGetNodes();”
- $('table.sortable') = 所有数据表
现在,系好安全带(法国班轮)。当您隐式隐藏一行时,dataTable 仍然计算它。这是神话般的结果。
话虽如此,主要问题是:我应该如何告诉 dataTable 我想隐藏行而不永远删除它们?DataTable 已经有一个过滤器框,但我需要它与类型过滤器框(不在图像中)一起独立工作。
有没有办法添加第二个过滤器,也许?