2011-06-29 33 views
5

Tôi đang sử dụng jQuery DataTable để tạo thành một bảng trong số này "data.txt":DataTables jQuery fnrender với các đối tượng

{ "aaData" : [ 
{  
    "ftitle": "Test1", 
    "link": "http://server.com/test1/", 
    "fname": "test1.pdf", 
    "fid": "test1_353752165.pdf" 
}, 
{  
    "ftitle": "Test2", 
    "link": "http://server.com/test2/", 
    "fname": "test2.pdf", 
    "fid": "test2_353754257.pdf" 
} ] } 

Đây là mã js của tôi:

$('#example').dataTable({ 
    "bProcessing": true, 
    "sAjaxSource": "data/data.txt", 
    "aoColumns": [ 
     { "sClass": "center", 
      "fnRender": function(oObj) { 
       return oObj.aData[0]+' '+ oObj.aData[2]; 
      } 
     }, 
     { "mDataProp": "fid", "sClass": "center" }, 
     { "mDataProp": "fname", "sClass": "center" } 
    ], 
}); 

Tôi chỉ muốn để lấy dữ liệu thực tế với .aData của fnrender() nhưng dữ liệu này chỉ hoạt động với dữ liệu chỉ mảng. Những gì tôi nhận được bây giờ là "undefined undefined", nếu tôi sử dụng một .txt chỉ với dữ liệu mảng nó hoạt động tốt.

Tôi nghĩ mình không hiểu cách sử dụng fnrender proberly, đặc biệt khi làm việc với các đối tượng.

Trả lời

18

Bạn đang nhận được "không xác định" vì oObj.aData là một đối tượng, không phải là mảng và không có trường "0". Sử dụng cú pháp như thế này:

oObj.aData.link 

hoặc

oObj.aData["link"] 

Full dụ (chỉ sửa đổi fnRender giá trị trả về):

$('#example').dataTable({ 
    "bProcessing": true, 
    "sAjaxSource": "data/data.txt", 
    "aoColumns": [ 
     { "sClass": "center", 
      "fnRender": function(oObj) { 
       return '<a href="' + oObj.aData.link + '">' + oObj.aData.ftitle + '</a>'; 
      } 
     }, 
     { "mDataProp": "fid", "sClass": "center" }, 
     { "mDataProp": "fname", "sClass": "center" } 
    ], 
}); 
+0

Cảm ơn bạn. Sau một ngày với DataTables tôi đã tự mình vạch ra điều này. Tôi quên đăng bài này ở đây và đóng chủ đề này. – SchurigH

+0

Cảm ơn bạn rất nhiều vì gợi ý "oObj.aData.link" vì tôi đang cố gắng xây dựng mỏ từ hàng triệu hàng và cố gắng che giấu mọi thứ ... khi tôi có thể xuất liên kết khi cần, sau đó thêm nó fnRender. –

+0

Xin chào, xin vui lòng tôi cần một câu trả lời cho vấn đề tương tự, tuy nhiên, aoColumns của tôi sử dụng mData. Làm thế nào tôi có thể bao gồm "fnRender": function (oObj) { trả về '' + oObj.aData.ftitle + ''; trong một trong các mData. Cảm ơn. – Kunbi

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