jquery - 显示按字母顺序排列的搜索结果时如何修改行数

标签 jquery django datatables datatables-1.10

我正在使用DataTables创建一个能够动态过滤上下文的表。我正在遵循基本示例,here .

但是,我想进行一项自定义:在表格中显示按字母顺序排列的结果,每个字母都有一个“标题行”。例如:

A
- Apple
- Avocado
B
- Bear
- Button
C
- Car

我已经成功完成了此操作(在服务器端使用 Django 模板进行输出),但数据表默认显示的页脚标签现在不正确,因为它计算了标题行。在上面的示例中,内容如下:

Showing 1 to 8 of 8 entries 

何时应该读取:

Showing 1 to 5 of 5 entries.

进一步挖掘,信息结果可通过 API 访问:"language": {"info": "Showing START to END of TOTAL Entry",}

我能够从 Django 模板中计算标题行并将其保存为变量(例如 var headercount = 3)。

如何修改 DataTables API 中的 STARTENDTOTAL,以便它们在循环时在每个页面上都是准确的?

最佳答案

解决方案#1

您可以使用infoCallback选项定义一个函数,当表信息即将显示时将调用该函数。

例如,可以使用下面的代码实现默认行为。

var table = $('#example').DataTable({
   "infoCallback": function(settings, start, end, max, total, pre){
      return "Showing " + start + " to " + end + " of " + total + " entries"
         + ((total !== max) ? " (filtered from " + max + " total entries)" : "");
   }        
});

您需要相应地调整数字以避免计算标题。

参见this jsFiddle用于代码和演示。

解决方案#2

替代解决方案是使用 JavaScript 而不是静态 HTML 来按字母顺序排列表格内容,类似于 Row grouping example .

然后信息面板将自动包含正确的数字,因为标题行是作为附加节点动态添加的,而 DataTables 不会将这些节点计为行。

参见this jsFiddle用于代码和演示。

解决方案#3

使用AlphabetSearch plugin这增加了对字母搜索的支持。

关于jquery - 显示按字母顺序排列的搜索结果时如何修改行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31938113/

相关文章:

javascript - 在测验中选择单选按钮时突出显示正确和错误的答案

javascript - 循环输入字段;两次迭代后停止

Python/Django - 模板中的If语句围绕扩展

c# - 如何使用 Datatables.AspNet.Mvc5 进行服务器端排序

javascript - 列默认排序箭头重新排序

jquery - 单击图像时选择单选按钮

jquery - 使用 getElementById 时,knockout.js applyBindings 会破坏现有绑定(bind)

python - 如何使 Django 模型实例与另一个模型实例相关

python - 内存泄漏 - gunicorn + django + mysqldb

javascript - 响应式数据表和 Bootstrap 选项卡的问题