2016-12-05 94 views
0

我需要知道,如果是可能的初始化從JQuery的一個DataTable,與服務器端的處理加工,而不註明財產「列」,如果沒有,如何動態地顯示它。數據表服務器端處理加工無柱物業

當我初始化數據表就這樣

var InicialiceLaTablaDeUsuarios = function() { 
 
     var laTabla = $('#TablaDeUsuarios').DataTable({ 
 
      "processing": true, 
 
      "serverSide": true, 
 
      "ajax": { 
 
       "url": "/Usuarios/ConsulteLosUsuarios", 
 
       "type": "POST", 
 
       "dataType": "JSON" 
 
      }, 
 
      "deferRender": true, 
 
      "serverSide": true, 
 
      "searchDelay": 800, 
 
      "autoWidth": true, 
 
      "stateSave": true, 
 
      "columns": [ 
 
         { "data": "Apellido1" }, 
 
         { "data": "Apellido2" }, 
 
         { "data": "Clave" }, 
 
         { "data": "CorreoElectronico" }, 
 
         { "data": "Estado" }, 
 
         { "data": "Id" }, 
 
         { "data": "Nombre" } 
 
      ] 
 
     }); 
 
     return laTabla; 
 
    }

它完美,但如果我嘗試初始化數據表就這樣

var InicialiceLaTablaDeUsuarios = function() { 
 
     // 
 
     var laTabla = $('#TablaDeUsuarios').DataTable({ 
 
      "processing": true, 
 
      "serverSide": true, 
 
      "ajax": { 
 
       "url": "/Usuarios/ConsulteLosUsuarios", 
 
       "type": "POST", 
 
       "dataType": "JSON" 
 
      }, 
 
      "deferRender": true, 
 
      "serverSide": true, 
 
      "searchDelay": 800, 
 
      "autoWidth": true, 
 
      "stateSave": true 
 
     }); 
 
     return laTabla; 
 
    }

它不起作用並拋出下一個錯誤。

enter image description here

感謝您的時間。

問候。

+0

您需要在初始化來定義列,也可以在桌下''標籤定義它們。 – philantrovert

+0

嗨@philantrovert,謝謝你的時間。 我想我已經在做這 https://puu.sh/sEJSD/5c6c94c0a5.png – mmadrigal

回答

0

我試圖jQuery的數據表幾天就回來,我遇到同樣的問題。雖然我看到的例子是在腳本中沒有「列」字段的情況下保留了服務器端功能,但是在嘗試相同的情況下,我無法保留這些功能。主要的原因如下:

  1. 如何獲得json數據,這是如何從您的元素數組json字符串。

  2. 請參閱this示例,儘管他們沒有在腳本部分使用「列」,但他們正在控制器中定義這些列,因此以後不需要這樣做。你的情況可以做類似的事情。

沒有列我們的JSON數據將不知道哪個數據是需要的地方列,因而認定中的一部分。希望這有幫助!謝謝。

1

我在類似的情況下,我必須動態地初始化我的數據表的列。我通過單獨調用ajax來從後端獲取列描述來解決這個問題。

沿東西這行:

$.ajax({ 
     "async": false, 
     "url": "..//cgi-bin/<file with column description>", 
     "type": "GET", 
     "success": function(res){ 
      oTable = $('#example').DataTable({ 
       "serverSide": true, 
       "ajax": { 
        "url": "../cgi-bin/<server-side output file>", 
        "type": "POST", 
        "data" : { <table names> } 
        }, 
       "dataSrc": "data", 
       "language": { 
        "searchPlaceholder": "Search..." 
       }, 
       "columns": res 
     }); 

file with column description的輸出是一個看起來像一個JSON:

[{ 
    "title": "ID" 
}, { 
    "title": "NAME" 
}, { 
    "title": "AGE" 
}] 

這將定義一個名爲TITLENAMEAGE 3列。

+0

感謝@philantrovert這將是一個很好的解決方案。 感謝您的時間和答案。 – mmadrigal

+0

@mmadrigal樂於助人。 – philantrovert