2011-10-03 46 views
17

Tôi có một tập dữ liệu JSON cục bộ. Tôi muốn sử dụng plugin jquery datatable để hiển thị nó. Có bất kỳ thiết lập hoặc cấu hình bên trong plugin datatable để hiển thị dữ liệu? Tất cả những gì tôi có thể tìm thấy là thực hiện cuộc gọi AJAX và cuộc gọi máy chủ.cách tải biến JSON cục bộ bằng cách sử dụng jquery datatable

Cảm ơn sự giúp đỡ.

+1

Bạn đã bao giờ con số này ra? Tôi cũng muốn khởi tạo với một mảng đối tượng cục bộ được truyền vào aaData. Tôi thấy rằng một người hiểu được câu hỏi của bạn. Tôi đã thử nó với các thuộc tính mData theo cách bạn muốn với một tập dữ liệu phía máy chủ nhưng nó không hoạt động. – Rabbi

Trả lời

17

Bạn có thể cung cấp DataTables với dữ liệu 4 cách khác nhau

Trong trường hợp của bạn, bạn sẽ muốn sử dụng tùy chọn thứ hai (Javascript Array). Bạn sẽ cần phải dịch hình dạng của đối tượng JSON của bạn thành một đối tượng mảng.

Dưới đây là một ví dụ

var json = { 
    BrowserStats : [ 
    { engine: "Trident", browser: "IE 4.0", platform: "Win 95+", version: 4 }, 
    { engine: "Trident", browser: "IE 5.0", platform: "Win 95+", version: 5 }, 
    { engine: "Trident", browser: "IE 5.5", platform: "Win 95+", version: 5.5 } 
    ] 
}; 

var data = jQuery.map(json.BrowserStats, function(el, i) { 
    return new [el.engine, el.browser, el.platform, el.version]; 
}); 

$('#example').dataTable({ 
    "aaData": data, 
    "aoColumns": [ 
    { "sTitle": "Engine" }, 
    { "sTitle": "Browser" }, 
    { "sTitle": "Platform" }, 
    { "sTitle": "Version"} 
    ] 
}); 
+0

Tôi nghĩ rằng dấu bằng sau khi BrowserStats phải là dấu hai chấm và bạn nên xóa dấu phẩy sau hàng thứ ba. Cảm ơn câu trả lời của bạn. – Upperstage

+0

Xong và xong. Tốt bắt – jessegavin

+0

câu trả lời tuyệt vời !! – ufk

1

Bạn có thể đặt tham số AjaxSource trỏ đến Số liệu của bạn:

$('#example').dataTable({ 
    "sAjaxSource": 'dataset.json' 
}); 

Điều này sẽ tải tất cả dữ liệu một lần và đặt chúng vào DataTable. Xem thêm chi tiết về số http://www.datatables.net/examples/data_sources/ajax.html.

Jovan

0

Sử dụng data tùy chọn để cung cấp dữ liệu cho một bảng.

Ví dụ:

var table_data = [ 
    [ "Tiger Nixon", "System Architect", "$3,120", "2011/04/25", "Edinburgh", 5421 ], 
    [ "Garrett Winters", "Director", "$8,422", "2011/07/25", "Edinburgh", 8422 ] 
]; 

$('#example').DataTable({ 
    data: table_data 
}); 

Nếu dữ liệu của bạn là một chuỗi ở định dạng JSON, bạn có thể muốn phân tích nó đầu tiên với một trong hai $.parseJSON() hoặc JSON.parse().

Xem this jsFiddle để biết mã và trình diễn.

0

Giải quyết các vấn đề với các jessegavinanswer:

$(document).ready(function(){ 

var json = { 
    BrowserStats : [ 
    { engine: "Trident", browser: "IE 4.0", platform: "Win 95+", version: 4 }, 
    { engine: "Trident", browser: "IE 5.0", platform: "Win 95+", version: 5 }, 
    { engine: "Trident", browser: "IE 5.5", platform: "Win 95+", version: 5.5 } 
    ] 
}; 

var data = jQuery.map(json.BrowserStats, function(el, i) { 
    return [[el.engine, el.browser, el.platform, el.version]]; 
}); 

$('#example').dataTable({ 
    "aaData": data, 
    "aoColumns": [ 
    { "sTitle": "Engine" }, 
    { "sTitle": "Browser" }, 
    { "sTitle": "Platform" }, 
    { "sTitle": "Version"} 
    ] 
}); 
}); 

https://jsfiddle.net/byejn8ye/

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