2016-12-05 73 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