2017-09-22 4 views
1

アップ編集:別のプロジェクトで試しました。再度同じ問題、私は10のデータ列でそれを使用しようとすると、同じエラー、https://datatables.net/manual/tech-notes/7を提供します。しかし、私の問題については何の言い訳もありません。今私はそれがバックエンドではないと確信しています。また、私は1つの列に2つのデータを貼り付け、この10の列を9列に下げるとき、それはまだ動作します。確かに列番号について何かでなければなりません。DataTableに9個以上の列を定義できません。


私のプロジェクトではJquery DataTablesを使用しています。私のテーブルの大部分はカラムの数が少ないですが、今日は10カラムのテーブルで試しました。長い研究とテストの後、私は奇妙な問題を発見しました。私は9列以上を定義すると、データを取得するJsonResultアクションを起動しませんが、DataTableスクリプトからデータ列の1つを削除しようとすると、 。削除するデータ列に依存しません。すべての列についてです。 9つ以上の列が機能しないことを意味します。

私は "scrollX"オプションを使用し、列幅に小さな値を与えてみました。私は他の解決策を見つけることができません。ここで

は私のDataTableスクリプトの例です。ここで

$(document).ready(function() { 
    var table = $('#tblExample').DataTable({ 
     "scrollX": true, 
     "ordering": false, 
     "searching": false, 
     "serverSide": true, 
     "info": false, 
     ajax: { 
      "url": "/ExampleRoute/ExampleController/ExampleAction", 
      "data": function (d) { 
       d.tofind= $("#txtToFind").val() 
      } 
     }, 
     columns: [ 
     { data: "Data1" , width:"%5" }, 
     { data: "Data2" , width:"%5" }, 
     { data: "Data3" , width:"%5"}, 
     { data: "Data4" , width:"%5"}, 
     { data: "Data5" , width:"%5"}, 
     { data: "Data6" , width:"%5"}, 
     { data: "Data7" , width:"%5"}, 
     { data: "Data8" , width:"%5"}, 
     { data: "Data9" , width:"%5"}, 
     { data: "Data10" , width:"%5"},    
     ], 
     fixedColumns: true, 
     responsive: true 
    }); 

}); 

は、私が言ったようにこれは、コントローラ/アクションについてではありません、私の表のHTML

<table id="tblExample"> 
       <thead> 
        <tr> 
         <th class="example1">Data1Col</th> 
         <th class="example2">Data2Col</th> 
         <th class="example3">Data3Col</th> 
         <th class="example4">Data4Col</th> 
         <th class="example5">Data5Col</th> 
         <th class="example6">Data6Col</th> 
         <th class="example7">Data7Col</th> 
         <th class="example8">Data8Col</th> 
         <th class="example9">Data9Col</th> 
         <th class="example10">Data10Col</th> 
        </tr> 
       </thead> 
      </table> 

の一例です。私が9列で試してみると、それは完璧に動作し、火災ExampleController/ExampleActionが発生しますが、9+のデータ列では、このアクションも起動しません。また、それは約<th>の数字ではありません、私はより多くのデータの列を使用してそれを試してみました、再びそれは10未満の列がある場合にのみ動作します。より多くのデータ列を使用できる解決策がありますか?

+0

私はこの問題は他のものからだと思う。 –

+0

それはできない。私が9,8,7以上のデータ列でそれをやろうとすると、それはすべてのokeyだ。それがActionに発砲していたら、私のJsonResultは間違っていると言えるかもしれませんが、私が言ったように、それは動作しません。テーブルのスクロールができないときにこのエラーが出るが、それを解決できないほど幅があると言う人もいる。 – ReadyFreddy

+0

@ReadyFreddy制限はあなたのAJAX配列の戻り値から来ています。より完全な例を表示することができます。ここではJquery、bootstrap、dataTableを使用してhttps://codepen.io/anon/pen/YrGxqdを入力しました –

答えて

1

私は、DataTableのajaxによって送信されたリクエスト文字列に関する問題を発見しました。 DataTableにあまりにも多くのデータを返す場合、クエリ文字列が非常に長くなり、[HttpGet]アクションからデータを取得できなくなります。この問題に悩まされている場合は、テーブルajaxのタイプをPOSTに変更する必要があります。また、コントローラ内のアクションを[HttpPost]として定義する必要があります。

関連する問題