2017-09-22 1 views
1

위로 편집 : 다른 프로젝트에서 시도했습니다. 다시 같은 문제, 내가 10 데이터 열을 사용하려고하면, 그것은 동일한 오류 https://datatables.net/manual/tech-notes/7을 제공합니다. 그러나 내 문제에 대해서는 아무런 진술도 없다. 이제는 백엔드가 아니라는 확신이 들었습니다. 또한 하나의 열에 두 개의 데이터를 붙여 넣고이 열을 9 개의 열로 낮추면 여전히 작동합니다. 확실히 열 번호에 관한 것이어야합니다.DataTable에 9 개 이상의 열을 정의 할 수 없습니다.


내 프로젝트에서 Jquery DataTables를 사용하고 있습니다. 대부분의 테이블에는 열 수가 적지 만 오늘은 열이 10 개인 테이블로 시도했습니다. 오랜 연구와 테스트 후에 이상한 문제가 발견되었습니다. 9 열 이상을 정의하면 데이터를 가져 오는 JsonResult 액션이 실행되지 않지만 DataTable 스크립트에서 데이터 열 중 하나를 삭제하려고하면 정상적으로 실행됩니다. . 삭제할 데이터 열에 종속되지 않습니다. 모든 열에 관한 것입니다. 9 개 이상의 열은 작동하지 않는다는 것을 의미합니다.

"scrollX"옵션을 사용하고 컬럼에 낮은 너비 값을 지정하려고했습니다. 다른 해결책을 찾을 수 없습니다.

다음
$(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> 

의 예입니다 : 여기

내 DataTable에 스크립트의 예입니다. 9 열로 시도하면 완벽하게 작동하지만 ExampleController/ExampleAction이 발동합니다. 그러나 9+ 데이터 열에도이 동작이 실행되지 않습니다. 또한 그것은 약 <th> 숫자에 대한 아니에요, 나는 더 적은 다음 데이터 열로 그것을 시도, 그것은 단지 10 열 미만인 경우에만 다시 작동합니다. 더 많은 데이터 열을 사용할 수있는 솔루션이 있습니까?

+0

아무런 제한이 없습니다. 문제는 다른 것입니다. –

+0

9,8,7 이하의 데이터 열을 사용하려고 할 때 그럴 수 없습니다. Action으로 발사했다면 JsonResult가 잘못 될 수 있다고 말할 수는 있지만, 내가 말한 것처럼 행동을 시작하지는 않습니다. 어떤 사람들은 그것이 폭에 관한 것이라고 말합니다. 테이블이 스크롤 할 수 없으면이 오류가 발생하지만 해결할 수는 없습니다. – ReadyFreddy

+0

@ReadyFreddy 제한은 아약스 배열 선의 반환에서 왔습니다. Jquery, 부트 스트랩, dataTable을 사용하여 https://codepen.io/anon/pen/YrGxqd를 사용하여보다 완벽한 예제를 표시 할 수 있습니다. –

답변

1

좋아, 문제는 DataTable의 아약스 보낸 요청 문자열에 대한 발견. DataTable에 너무 많은 데이터를 반환하려는 경우 쿼리 문자열이 매우 길어지고 [HttpGet] 작업에서 데이터를 가져올 수 없습니다. 이 문제로 어려움에 처한 경우 테이블 아약스 유형을 POST로 변경해야하며 컨트롤러에서 [HttpPost]로 작업을 정의해야합니다.

관련 문제