2011-09-28 2 views
2

뭔가 잘못하고있을 것입니다.하지만 코드는 매우 기본적인 것으로 웹에서의 예에서 벗어나지 않습니다.Datatables에서 페이지 변경 내용을 처리하지 않습니다.

서버 측 페이징을 사용하고 있는데, 즉각적인 페이지로드시 서버에서 데이터를 가져 와서 테이블을 올바르게 렌더링한다는 것입니다. 그러나 페이징, 또는 페이지의 레코드 수를 변경하면 AJAX 호출을 수행하지만 실제로 처리하지 못합니다.

jquery.dataTables.js (v 1.8.2)의 3562 행을 변경하면 문제가 중지됩니다.

if (false)//json.sEcho*1 < oSettings.iDraw) 

그 라인에 대한 몇 가지 상황 :

<script type="text/javascript"> 
    $(function(){ 

     $('#recTable').dataTable({ 
       "bProcessing":true, 
       "bServerSide": true, 
       "sAjaxSource": "/recordings/partPageCallRecordings/", 
      "bJQueryUI": true, 
      "sPaginationType": "full_numbers", 
      "aoColumns": [ 
       { "bSortable": false }, 
       null, 
       null, 
       null, 
       { "bSortable": false } 
      ] 
     });   
    }); 

</script> 

과 HTML :

<table id='recTable' class='vmTable' > 
    <thead> 
     <tr class='vmHeader'> 
      <th><input id='selectAll' type='checkbox'></input></th> 
      <th class='sortHead'>Date</th> 
      <th class='sortHead'>File Name</th> 
      <th class='sortHead'>Type</th> 
      <th class='sortHead'>Playback</th> 
     </tr> 
    </thead> 
    <tbody>  
    </tbody> 
</table> 

답변

4

그것은처럼 보이는

function _fnAjaxUpdateDraw (oSettings, json) 
    { 
     if (typeof json.sEcho != 'undefined') 
     { 
      /* Protect against old returns over-writing a new one. Possible when you get 
      * very fast interaction, and later queires are completed much faster 
      */ 
      if (false)//json.sEcho*1 < oSettings.iDraw) 

그냥 내 설정이 얼마나 간단하게 설명하기 당신은 sEcho 데이터를 클라이언트는 블록 if 첫 번째를 지나치게됩니다. 서버 측에서 어떤 식 으로든 편집하고 있습니까? sEcho가 반환하는 것을보기 위해 그 줄에 불 덩어리에 중단 점을 넣으려고 했습니까? 기본적으로이 요청은 최신 iDraw 정수와 비교 한 sEcho 값으로 표시된 이전 요청입니다.

json 응답이 어떻게 보이는지 보지 않고 나는 단지 추측 할 수 있습니다. 하지만 내 생각 엔 sEcho 변수가 서버 측에서 올바르게 설정되지 않았을 것입니다.

+1

내 경험에 비추어 볼 때 서버의 해당 데이터와 상호 작용하는 적절한 방법은 요청 매개 변수에서 가져온 다음 수정하지 않고 그대로 응답에서 다시 전송하는 것입니다. –

+0

감사합니다. 나는 내 응답의 일부가 하드 코딩 된 사실을 어떻게 간과했는지 모른다. – andyortlieb

관련 문제