2015-05-20 17 views
6

tôi đang làm việc trên pagination và tôi đang sử dụng DataTables plugin, trên một số bảng đó là công việc nhưng trên một số bảng nó mang lại cho lỗi:của router Lỗi Loại: Không thể đọc thuộc 'aDataSort' không xác định

Uncaught TypeError: Cannot read property 'aDataSort' of undefined

script trang của tôi trông giống như:

$(document).ready(function() { 
    $('.datatable').dataTable({ 
     "scrollY":  "200px", 
     "scrollCollapse": true, 
     "info":   true, 
     "paging":   true 
    }); 
}); 

// HTML code

<table class="table table-striped table-bordered datatable"> 
    <thead> 
     <tr> 
      <th><?php echo lang('date_label')?></th> 
      <th><?php echo lang('paid_label')?></th> 
      <th><?php echo lang('comments_label');?></th> 
     </tr> 
    </thead> 
    <tbody> 
     <?php foreach ($payments as $pay): ?> 
     <tr> 
     <td><?php echo dateformat($pay['time_stamp'], TRUE);?></td> 
     <td><?php echo format_price($pay['amount']);?></td> 
     <td><?php echo $pay['note'];?></td> 
     </tr> 
     <?php endforeach?> 
    </tbody> 
</table> 

không có ý tưởng như thế nào vấn đề đến, tôi biết đây là lỗi rất phổ biến nhưng tôi tìm kiếm và thấy không có gì hỗ trợ vấn đề của tôi.
có ai biết giải pháp này không?

+0

rõ ràng bạn đang sử dụng tính năng sắp xếp của 'datatables' ở đâu đó bạn có thể đăng toàn bộ mã có liên quan không? –

+0

Có thể là lỗi cú pháp ở đâu đó .. cung cấp mã có liên quan .. – urbz

+0

yeap, lỗi cú pháp của

có thể là vấn đề nhất – MaVRoSCy

Trả lời

8

sử dụng một cái gì đó như sau trong mã của bạn để vô hiệu hóa sắp xếp trên DataTables (chuyển thể từ một dự án của tôi trong đó sử dụng mới nhất DataTables)

$(document).ready(function() { 
    $('.datatable').dataTable({ 
     'bSort': false, 
     'aoColumns': [ 
       { sWidth: "45%", bSearchable: false, bSortable: false }, 
       { sWidth: "45%", bSearchable: false, bSortable: false }, 
       { sWidth: "10%", bSearchable: false, bSortable: false } 
     ], 
     "scrollY":  "200px", 
     "scrollCollapse": true, 
     "info":   true, 
     "paging":   true 
    }); 
}); 

mảng aoColumns mô tả chiều rộng của mỗi cột và sortable thuộc tính của nó, điều chỉnh khi cần thiết cho bảng của riêng bạn (số cột).

+0

Wao Giải quyết được vấn đề của tôi, một câu trả lời và chấp nhận câu trả lời của bạn. –

+0

@AbdulManan, chúc mừng tuyệt vời! –

4

Tôi gặp phải vấn đề tương tự và sau đó đã tìm thấy lỗi nhập trong thuộc tính "mục tiêu" trong cộtDefs. Xem dưới đây Ví dụ,

sai mã dưới đây,

{ 
"name": "firstName", 
"target": [1], 
"visible": false 
} 

Correction -. Nhỡ 's' trong mục tiêu :(

Hình như lỗi này xảy ra khi các cột cái gì đó gây ra không nhận được khởi tạo I đã kiểm tra sự kiện 'preInit.dt' đó không được kích hoạt trong trường hợp này.

2

Tôi chạy vào vấn đề này bằng cách sử dụng KnockoutJS vì các cột chưa được xác định khi javascript đã cố gắng áp dụng DataTable cho nó. Cách tiếp cận của tôi với knockoutJS là di chuyển mã liên kết dữ liệu của tôi thành một mẫu loại bỏ và sử dụng sự kiện afterRender để áp dụng DataTable cho bảng.

Đây là liên kết đến số knockoutJS docs cho sự kiện afterRender mẫu.

Đây là những gì tôi dữ liệu ràng buộc trông giống như:

<div data-bind="template: { name: 'schedule-table', data: $data, afterRender: setupDataTable }"></div> 

Có một mẹo hơn. Trong hàm setupDataTable, bảng vẫn không được thiết lập hoàn toàn, (Tôi đã cố gắng để có được FixedHeaders và độ rộng chưa được thiết lập). Vì vậy, tôi gọi setTimeout với độ trễ 0 mili giây để lấy mã chạy trên chu kỳ nhàn rỗi đầu tiên.

Đây là setupDataTable tôi:

function setupDataTable() { 
    setTimeout(function() { 
     $("#schedule").DataTable({fixedHeader: true}); 
    }, 0); 
} 

Hope this helps ai đó tìm kiếm một giải pháp knockoutJS và chạy vào cùng một vấn đề tôi chạy vào.

+0

Lỗi tương tự ở đây sử dụng AngularJS và angat-datatables: Tôi quên thêm thuộc tính "dt-columns" vào chỉ thị datatables. Cảm ơn bạn! – McGiogen

1

Lỗi này hiển thị cho tôi, tôi tin rằng vì "mData" và "sTitle" của tôi không được xác định.

Các vấn đề liên quan