2016-09-16 393 views
1

我試圖在我的應用程序中添加DataTable。 https://datatables.net/ 我有一個網頁,其中的數據表要在onclick事件上顯示,當系統觸發onclick事件時,ajax調用將被調用,並且數據將來自Java servlet。下面是我的代碼Java Json不能正常工作的Jquery數據表

JSP:

<table id="testTable" class="display" cellspacing="0" 
          width="100%" cellpadding="0" border="0"> 
          <thead> 
           <tr> 
            <th>Test</th> 
            <th>Description</th> 
            <th>Result</th> 
            <th>Start Time</th> 
            <th>End Time</th> 
           </tr> 
          </thead> 

         </table> 

JQuery的:

function getTestData(name, e, bId) { 
     $('#testTable').dataTable({ 

      "serverSide": true, 
      "processing": true, 
      "ajax":{     
      "type" : "POST", 
      "dataSrc": "data", 
      "url" : "Servlet", 
      "dataType": "json", 
      "data" : { 
       name : name, 
       e : e, 
       bId : bId, 
       method : "getTestData" 
      }, 
      "sEcho": 0, 
      "processing": true, 
       "columns":[ 
         { "data": "tId" }, 
         { "data": "description" }, 
         { "data": "rst" }, 
         { "data": "startDate" }, 
         { "data": "endDate" } 
        ]  
      } 
     }); 
    } 

Servlet是返回以下JSON:

{ 
     "data": [ 
     { 
      "tId": "1", 
      "description": "desc", 
      "rst": "P", 
      "startDate": "2016-09-13 07:59:31.0", 
      "endDate": "2016-09-13 07:59:51.0" 
     }, 
     { 
      "tId": "2", 
      "description": "desc", 
      "rst": "S", 
       "startDate": "2016-09-13 07:59:51.0", 
      "endDate": "2016-09-13 07:59:51.0" 
      } 
     ] 
     } 

我得到以下錯誤:

DataTables warning: table id=testTable - Requested unknown parameter '0' for row 0, column 0. 

enter image description here

我知道錯誤的原因,但不知道我在上面的代碼做錯了,我想一些錯誤的jQuery代碼。請幫忙。

在此先感謝

+0

數據表

 $.getJSON("http://example/servlet_data.json", function(fromServer) { $('#testTable').DataTable({ data: fromServer.data, columns: [ { data: "tId" }, { data: "description"}, { data: "rst"}, { data: "startDate"}, { data: "endDate"} ] }); }).fail(function(){ alert("Error occurred getting data from the server"); }) 

高興,如果你使用'{「數據」:0},{「數據「:1}'等。它工作嗎? – markpsmith

+0

是的,但沒有運氣...... – itin

+0

你的意思是它的工作原理,或者不是嗎? – markpsmith

回答

0

的JSON應在下述格式

{ 
    "draw": 1, 
"recordsTotal": 57, 
"recordsFiltered": 57, 
"data": [ 
[ 
    "Airi", 
    "Satou", 
    "Accountant", 
    "Tokyo", 
    "28th Nov 08", 
    "$162,700" 
], 
[ 
    "Angelica", 
    "Ramos", 
    "Chief Executive Officer (CEO)", 
    "London", 
    "9th Oct 09", 
    "$1,200,000" 
] 
] 
} 

https://datatables.net/examples/data_sources/server_side.html

0

更改您的初始化代碼到你的JSON數據格式相匹配,如下圖所示。

$('#testTable').dataTable({ 
    "ajax": { 
     "type": "POST", 
     "url": "Servlet" 
    }, 
    "columns": [ 
     { "data": "tId" }, 
     { "data": "description"}, 
     { "data": "rst" }, 
     { "data": "startDate" }, 
     { "data": "endDate"} 
    ] 
}); 

查看this jsFiddle的代碼和演示。

0

初始化數據表的方式不正確,可以通過不同的方式查看here

@ Gyrocode.com的答案從您可能正在努力的方向中挑選出來。 我只是給你一個答案,我想也許可以考慮獲得數據並將它傳遞給編碼