2016-12-05 11 views
0

可能であれば、プロパティ "列"を示さないサーバー側の処理でJQueryからDataTableを初期化することができます。そうでない場合は、動的にそれを示す方法が必要です。DataTables列がないサーバー側の処理プロパティ

私は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; 
 
    }

のようなのDataTableを初期化しようとした場合

これは動作せず、次のエラーをスローします。お時間を

enter image description here

感謝。

ご挨拶。

+0

初期化で列を定義する必要があります。または、テーブル内の「」タグで定義することができます。 – philantrovert

+0

こんにちは@philantrovert、ありがとうございました。 私はすでにそれをやっていると思うだろう https://puu.sh/sEJSD/5c6c94c0a5.png – mmadrigal

答えて

0

私は数日前にjqueryデータ型を試していましたが、同じ問題が発生しました。私は例を見たが、サーバ側の機能はスクリプト内の "カラム"フィールドなしで保持されていましたが、同じことを試みている間は機能を保持できませんでした。主な理由は次のとおりです。

  1. jsonデータを取得する方法は、要素の配列からjson文字列を作成する方法です。

  2. 例を参照してください。スクリプト部分では「カラム」は使用していませんが、コントローラのカラムを定義しているため、後で行う必要はありません。あなたの場合も同様のことができます。

私たちのjsonデータは、どのデータがどの列の一部であるかを知ることができず、したがってどこかでdefinationが必要です。これが参考になることを願っています!ありがとう。

1

私はデータテーブルの列を動的に初期化しなければならない状況に似ていました。私はそれをバックエンドから列の説明を取得するために別々のajax呼び出しを行うことで解決しました。この線に沿って

何か:これは3つのTITLEという名前の列、NAMEAGEを定義し

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

$.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ました。

+0

ありがとう@philantrovertそれはいい解決策になります。 あなたの時間と回答に感謝します。 – mmadrigal

+0

@ mmadrigal幸せに助けてください。 – philantrovert

関連する問題