2011-06-29 72 views
5

我使用jQuery的DataTable以形成臺出這個 「data.txt中」 的對象:jQuery的數據表fnrender與

{ "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" 
} ] } 

這是我的js代碼:

$('#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" } 
    ], 
}); 

我只是想獲取.aData的fnrender()的實際數據,但這隻適用於僅數組數據。 我現在得到的是「undefined undefined」,如果我使用.txt而只是數組數據,它工作正常。

我想我不明白如何使用fnrender proberly,尤其是在處理對象時。

回答

18

因爲oObj.aData是一個對象,而不是數組,並且沒有「0」字段,所以你會得到「未定義」。使用的語法如下:

oObj.aData.link 

oObj.aData["link"] 

完整的示例(只修改了fnRender返回值):

$('#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

謝謝。經過一天的DataTables,我自己想到了這一點。我忘了在此發佈並關閉此主題。 – SchurigH

+0

非常感謝你提供「oObj.aData.link」的建議,因爲我試圖從一百萬行數據塊中構建我的數據,並試圖隱藏事物......當我可以根據需要輸出鏈接時,然後添加它fnRender。 –

+0

嗨,我需要類似問題的答案,但是,我的aColumns使用mData。我怎樣才能包含這個「fnRender」:函數(oObj){'' + oObj.aData.ftitle + '';返回mData中的一個。謝謝。 – Kunbi