2011-06-29 1 views
5

オブジェクトとfnrender:私はちょうどたいjQueryのDataTableのは、私は、この "data.txtを" の外にテーブルを形成するためのjQueryのDataTableを使用してい

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

{ "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のコードです.aDataがfnrender()の実際のデータを取得しますが、これは配列のみのデータでのみ機能します。 私が今取得するのは「未定義の未定義」です。配列データだけで.txtを使用すると正常に動作します。

私は、fnrenderをプローバルで使用する方法を正しく理解していないと思います。

答えて

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で1日を過ごした後、私はこれを自分で取り上げました。私はこれをここに投稿してこのトピックを閉じるのを忘れていました。 – SchurigH

+0

「oObj.aData.link」の提案をしてくれてありがとうございます。なぜなら、100万行のパーツから鉱山を建設しようとしていて、物事を隠そうとしていたからです...必要に応じてリンクを出力してからfnRender。 –

+0

こんにちは、同様の問題に対する回答が必要ですが、私のaoColumnsはmDataを使用しています。この "fnRender"をどのように含めることができますか:function(oObj){ ;返信 '' + oObj.aData.ftitle + '';はmDataの1つです。ありがとう。 – Kunbi

関連する問題