【问题标题】:datatables custom sort (only pre activates)数据表自定义排序(仅预激活)
【发布时间】:2015-02-02 17:22:49
【问题描述】:

我在该列上有一些由 sType: "my-num-html" 定义的自定义排序代码。

我的列数据是这样的:

  • AB 332
  • 公元前 664 年
  • CD 325
  • KF 576

默认情况下它是这样排序的:

  • CD 325
  • AB 332
  • KF 576
  • 公元前 664 年

它完全忽略了字母...我试图让它不忽略字母。

然后我在“dataTables.naturalSort.js”中进行了扩展

jQuery.extend(jQuery.fn.dataTableExt.oSort, {
        "my-num-html-pre": function (a) {
            console.log("my-num-html pre");
            var x = String(a).replace(/<[\s\S]*?>/g, "");
            console.log("nh: " + x);
            return x;
        },

    "my-num-html-asc": function (a, b) {
        console.log("my-num-html asc");
        return naturalSort(a, b); //((a < b) ? -1 : ((a > b) ? 1 : 0));
    },

    "my-num-html-desc": function (a, b) {
        console.log("my-num-html desc");
        return naturalSort(a, b) * -1; //((a < b) ? 1 : ((a > b) ? -1 : 0));
    }
});

问题是它不应该忽略这些字母并且应该打印 asc/desc 函数...预打印我在日志中的列(使用 console.log)。

当页面加载时,即使是“pre”也不会加载。

当您单击列标题时:预加载,但仅此而已,并且顺序不正确。

再次点击时:再次预加载,但顺序仍然不正确。

“asc”和“desc”日志永远不会被打印出来。

EDIT:: AJAX“fnserverdata”正在被使用,只要调用它,订单就会重置回 AJAX 数据。

【问题讨论】:

    标签: jquery sorting datatable jquery-datatables


    【解决方案1】:

    原来它正在通过服务器端进行排序,我不能说为什么它没有激活该代码。我仍然没有弄清楚为什么它之后不使用自定义排序进行排序。

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 2018-09-30
      • 2014-02-05
      • 1970-01-01
      • 1970-01-01
      • 2019-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多