【问题标题】:Sorting datatable using ultimate date plugin not working使用最终日期插件对数据表进行排序不起作用
【发布时间】:2019-09-07 13:55:24
【问题描述】:

我正在使用从nugget package 安装的数据表。我的桌子目前看起来像这样: 我想在“Startdatum”上对我的表进行排序。我在视图的头部添加了以下代码:

    <h2>Index</h2>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
<script src="//cdn.datatables.net/plug-ins/1.10.12/sorting/datetime-moment.js"></script>

这是我的数据表函数,它呈现在视图的底部:

@section scripts
 {
    <script>
        //wachten tot pagina volledig ingeladen is
        $(document).ready(function () {
            $.fn.dataTable.moment('DD/MM/YYYY HH:mm:ss');
            $("#mytable").DataTable({
                "order": [[4, "asc"]], //or asc 
                columnDefs: [
                { type: "date-euro", targets: 4 }
            ]
});
        });
    </script>
}

我的自动完成功能无法识别 .moment,并且表格未按时正确排序,如图所示。有谁知道我做错了什么?

【问题讨论】:

标签: jquery asp.net asp.net-mvc datatables


【解决方案1】:

主要错误是你需要其他库来匹配type: "date-euro"

<script src="//cdn.datatables.net/plug-ins/1.10.19/sorting/date-euro.js"></script>

那么,您的日期格式错误。您正在混合日期,例如 1/02/201910/02/2019。您必须使用第二个选项,例如,在 C# 中,您必须在所有日期中使用 myDate.ToString("dd/MM/yyyy HH:mm:ss")。请参见下面的示例:

最后,我不确定,但我认为如果你在 def 列中使用 date-euro$.fn.dataTable.moment('DD/MM/YYYY HH:mm:ss'); 是不必要的。

【讨论】:

  • 我使用了 tostring 方法,并用你的替换了我的第二个脚本,但它仍然没有正确排序......我在控制台中收到以下错误 Uncaught ReferenceError: jQuery is not defined at date-euro.js: 24
  • 这是因为你在 jquery 之前加载 date-euro 库,而你必须在 jquery 库之后加载它
猜你喜欢
  • 2023-03-04
  • 2012-07-19
  • 2016-11-06
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
  • 2016-07-16
相关资源
最近更新 更多