1

我有一个DataTable包含(RegisteredDate)日期和状态的字段。在RegisteredDate字段中,我想将日期格式显示为“YYYY-MM-DD”,并在状态字段中显示活动(1)或关闭(0)。

RegisteredDate在数据库中,和的样本值为Status::

   RegisteredDate                   Status
2020-01-03 13:32:11.370                1
2020-01-12 11:23:48.330                1
2020-01-12 11:23:49.923                1

但在 DataTable 我得到的值是/Date(1578823190740)/. 请看附图。

此外,当 DataTable 加载时,它应该按 Id 的降序排列。我怎样才能做到这一点?

/// datatable code 
var Popup, dataTable;
    $(document).ready(function () {
        alert("testing...");
        dataTable = $("#tbl_vehicle").DataTable({

            "ajax":{
                "url": "/Vehicles/GetVehicle",
                "type": "GET", 
                "datatype": "json"
            },
            "columns": [
                { "data": "VehicleType" },
                { "data": "Amount" },
                { "data": "RenewPeriod" },
                { "data": "RegisteredDate" },
                { "data": "RegisteredBy" },
                { "data": "Status" },
                { "data": "ModifiedBy" },
                { "data": "ModifiedDate" }
            ],
            "language": {
                "emptyTable" : "No data available, please click on <b>Add</b> button"
            }

        });

    });

加载数据的控制器代码

/// controller code
public ActionResult GetVehicle()
{
    List<Vehicle> vehicleList = db.Vehicle.ToList<Vehicle>();
    return Json(new { data = vehicleList }, JsonRequestBehavior.AllowGet);
}

在此处输入图像描述

4

2 回答 2

1

您可以简单地将日期转换为控制器本身中所需的格式。为此,您必须RegisteredDateString在 Model 类中添加一个字符串属性,并将此属性绑定到 datatable 而不是RegisteredDate.

 List<Vehicle> vehicleList = db.Vehicle.ToList<Vehicle>();
 vehicleList.ForEach(x => x.RegisteredDateString = 
 x.RegisteredDate.ToString("dd/MM/yyyy",CultureInfo.InvariantCulture));
于 2020-01-14T11:10:02.677 回答
1

要以您需要的格式显示日期时间,您可以使用moment.js,并在数据表中使用该格式,您可以使用数据表render的功能。首先,您必须momentjs使用 cdn 导入,如下所示。

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

并在导入后momentjs更改您的代码,如下所示。在这里,我使用了渲染函数来返回我们想要以特定格式显示的内容

var Popup, dataTable;
    $(document).ready(function () {
        alert("testing...");
        dataTable = $("#tbl_vehicle").DataTable({

            "ajax":{
                "url": "/Vehicles/GetVehicle",
                "type": "GET", 
                "datatype": "json"
            },
            "columns": [
                { "data": "VehicleType" },
                { "data": "Amount" },
                { "data": "RenewPeriod" },
                { 
                  "data": "RegisteredDate",
                  "render": function(data){
                    var date = moment(data).format("YYYY-MM-DD");
                    return date;
                  }
                },
                { "data": "RegisteredBy" },
                { 
                  "data": "Status",
                   "render" : function(data){
                      if(data === "true") return "1"
                      else return "0"
                   }
                },
                { "data": "ModifiedBy" },
                { 
                  "data": "ModifiedDate",
                  "render": function(data){
                    var date = moment(data).format("YYYY-MM-DD");
                    return date;
                  }
                }
            ],
            "language": {
                "emptyTable" : "No data available, please click on <b>Add</b> button"
            }

        });

    });

于 2020-01-14T09:38:39.243 回答