2016-03-31 2 views
1

Я пытаюсь показать свои объекты через js datatables. Хотя я установил iDisplayLength как 10, он отображает все строки!JQuery Datatables не фильтрует строки с помощью displaylength

Я использую DataTables 1.10.10

JS:

var settings = { 
     bAutoWidth: false, 
     autoWidth: false, 
     serverSide: true, 
     processing: true, 
     bLengthChange: true, 
     iDisplayLength: 10, 
     destroy: true, 
     scrollCollapse: true, 
     bLengthChange: true, 
     ajax: { 
      url: '/service/op', 
      type: 'POST', 
      dataSrc: 'data.posts', 
      data: function (d) { 
       d.op = 'datatable'; 
       d.sub_op = '@table_api'; 
       return JSON.stringify(d) 
      } 
     }, 
     sDom: "<'table-responsive't><'row'<p i>>", 
     columns: [ 
      { 
       render: function (data, type, link) { 
        return "shitttt" 
       } 
      } 
     ], 

    }; 

    var dt = $("#[email protected]_page").DataTable(settings); 

HTML

<div class="row"> 
    <div class="col-md-10 col-vlg-7"> 
     <table class="monitoring_timeline" id="[email protected]_page"> 
      <thead> 
       <tr> 
        <th></th> 
       </tr> 
      </thead> 
      <tbody> 

      </tbody> 
     </table> 
    </div> 
</div> 

Кто-нибудь знает, почему он не работает.

JSON:

{ 
    "draw": 1, 
    "recordsTotal": 1515, 
    "recordsFiltered": 1, 
    "data": { 
     "posts": [{ 
      "id": -7840784480314929507, 
      "datetime": "\/Date(1459359970000)\/", 
      "day_str": "today", 
      "time_str": "10.00 pm", 
      "user_name": "Clarice", 
      "user_profile_pic": "http://pbs.twimg.com/profile_images/714612662265651200/pbe_pnec_normal.jpg", 
      "sentiment": 2, 
      "title": "N tem nd pior q criar expectativas e se decepcionar!!! Arrrgh", 
      "content": "N tem nd pior q criar expectativas e se decepcionar!!! Arrrgh", 
      "lang": "pt", 
      "media": false, 
      "media_type": 0, 
      "media_src": null, 
      "iframe": false, 
      "comments": null, 
      "reactions": null, 
      "reposts": null, 
      "crm": false, 
      "topic": 0, 
      "category": { 
       "1": 1, 
       "2": 2, 
       "3": 1 
      } 
     }, { 
      "id": -3529972708747955425, 
      "datetime": "\/Date(1459359970000)\/", 
      "day_str": "today", 
      "time_str": "10.00 pm", 
      "user_name": "Um tal de Fernando", 
      "user_profile_pic": "http://pbs.twimg.com/profile_images/714705253191561216/Gn64mC-l_normal.jpg", 
      "sentiment": 2, 
      "title": "1 mês que não sei o que é escola", 
      "content": "1 mês que não sei o que é escola", 
      "lang": "pt", 
      "media": false, 
      "media_type": 0, 
      "media_src": null, 
      "iframe": false, 
      "comments": null, 
      "reactions": null, 
      "reposts": null, 
      "crm": false, 
      "topic": 0, 
      "category": { 
       "1": 1, 
       "2": 2, 
       "3": 1 
      } 
     }] 
    } 
} 

ответ

1

При использовании render функции, вы должны указали data колонки.

В вашем случае должна выглядеть примерно так ....

columns: [ 
      { 
      data : "op", 
      render: function (data, type, link) { 
       return "shitttt" 
      } 
     ] 

проверить этот пример, у вас есть такой же конфигурации, за исключением того, на стороне сервера

Пример: https://jsfiddle.net/cmedina/7kfmyw6x/34/

ОБНОВЛЕНИЕ

Помните, что сервер должен вернуть recordsFiltered для вашей разбивки на страницы!

"draw": 1, 
"recordsTotal": 1515, 
"recordsFiltered": 1,//Total records, after filtering (i.e. the total number of records after filtering has been applied - not just the number of records being returned for this page of data). 
+0

Ваш код работает, когда вы удаляете строку данных даже. – RockOnGom

+0

И когда я пробовал тоже, это не сработало. – RockOnGom

+0

Да, но да, но вы должны указать столбец, который нуждается в рендеринге, иначе он покажет ошибку 'mData' @RockOnGom – CMedina

Смежные вопросы