2017-03-09 63 views
0

我正在使用jQuery數據表來顯示我的web應用程序的短信統計,數據表用於輕鬆分頁,搜索和排序功能,它工作正常。但是在數據表中的列烯是一個日期,這裏是返回的JSON對象格式日期jQuery數據表內

public ActionResult LoadStatistics(jQueryDataTableParamModel param) 
    { 
     //jQueryDataTableParamModel param = new jQueryDataTableParamModel(); 
     var allStats = _dbManager.GetSMSStatitistics(); 
     var filteredStats = allStats; 
     if (!string.IsNullOrWhiteSpace(param.sSearch)) 
     { 
      filteredStats = filteredStats.Where(x => x.StaffNameF.Contains(param.sSearch, false) 
              || x.StaffNameS.Contains(param.sSearch, false) 
              || x.SiteID.Contains(param.sSearch, false)).ToList(); 
     } 
     return Json(new 
     { 
      iTotalRecords = allStats.Count(), 
      iTotalDisplayRecords = filteredStats.Count(), 
      aaData = filteredStats 
     }, JsonRequestBehavior.AllowGet); 
    } 

現在我有以下的代碼,將數據加載到我的表視圖我的操作方法,

@section scripts 

{

<script type="text/javascript"> 

    $(function() { 
     $('#statsTable').dataTable({ 
      bProcessing: true, 
      bServerSide: false, 
      bPaginate: true, 
      sAjaxSource: '@Url.Action("LoadStatistics", "Statistics")', 
      "aoColumnDefs": [ 
       { "aTargets": [0], "mData": 'StaffNameF' }, 
       { "aTargets": [1], "mData": 'StaffNameS' }, 
       { "aTargets": [2], "mData": 'StaffEmail', "sWidth": "300px" }, 
       { "aTargets": [3], "mData": 'SiteID' }, 
       { "aTargets": [4], "mData": 'DateTimeIn', "sWidth": "300px", "sFormat": "dd/MM/YYYY" }, 
       { "aTargets": [5], "mData": 'CellNumber' }] 
     }); 
    }); 

</script> 

這是工作的罰款所有列,除了日期WHI ch顯示類似這樣的內容「/ Date(1488924000000)/」。我假設這是日期,但它只需要格式化,我怎麼能實現這一點,我已經嘗試過「格式」:「dd/MM/YYYY」,但沒有運氣,我不知道如何在表內做到這一點。

+0

看一看'欄rendering'(https://開頭數據表.net/examples/advanced_init/column_render.html),並可以使用Moment.js(http://momentjs.com/) – annoyingmouse

回答

1

Json沒有日期的標準格式。 您可以將日期作爲字符串從服務器返回,也可以使用datatables列呈現來解析和格式化日期客戶端。

返回的日期從服務器端的格式化字符串:

return Json(new 
{ 
    iTotalRecords = allStats.Count(), 
    iTotalDisplayRecords = filteredStats.Count(), 
    aaData = filteredStats.Select(x => new { 
     StaffNameF = x.StaffNameF, 
     StaffNameS = x.StaffNameS, 
     StaffEmail = x.StaffEmail, 
     SiteID = x.SiteID, 
     DateTimeIn = x.DateTimeIn.ToString("dd/MM/YYYY"), 
     CellNumber = x.CellNumber }) 
}, JsonRequestBehavior.AllowGet); 

或者在客戶端格式:

<script type="text/javascript"> 

    $(function() { 
     $('#statsTable').dataTable({ 
      bProcessing: true, 
      bServerSide: false, 
      bPaginate: true, 
      sAjaxSource: '@Url.Action("LoadStatistics", "Statistics")', 
      "aoColumnDefs": [ 
       { "aTargets": [0], "mData": 'StaffNameF' }, 
       { "aTargets": [1], "mData": 'StaffNameS' }, 
       { "aTargets": [2], "mData": 'StaffEmail', "sWidth": "300px" }, 
       { "aTargets": [3], "mData": 'SiteID' }, 
       { "aTargets": [4], "mData": 'DateTimeIn', "sWidth": "300px", "mRender": function (data, type, full) { 
        var d = new Date(); 
        d.setTime(1245398693390); 
        return d.getDate() + "/"+ (d.getMonth() + 1) + "/" + d.getFullYear(); 
       }, 
       { "aTargets": [5], "mData": 'CellNumber' }] 
     }); 
    }); 

</script>