1

我正在使用 datatables.net 中的 datatables.js 并尝试显示基于 prev col 的列。就像如果 prev col 的值 < 0 然后 Dr else CR。

我尝试了以下脚本:

$(document).ready(function() {
    var oTable = $('#transaction-list-results').dataTable( {
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "bProcessing": true,
        "sAjaxSource": "ajax/transactions.php",
    "aaSorting": [[0, 'asc']],
    "bAutoWidth": false,
        "aoColumns": [
            { "mData": "ref_no", 'sWidth': '100px' },
            { "mData": "date", 'sWidth': '100px', "mRender": function(data, type, row){return localizeDateStr(data);}},
            { "mData": "desc", 'sWidth': '300px' },
            { "mData": "amount", 'sWidth': '75px', "sCalss": 'amount' },
        { "mData": "depo", 'sWidth': '75px', "mRender": function(data, type, row){return data;}},
        { "mData": "width", 'sWidth': '75px', "mRender": function(data, type, row){return data;}},
        { "mData": "transfer", 'sWidth': '75px', "mRender": function(data, type, row){return data;}}
        ]
    } );
} );

我的 transaction.php 文件的结果:

{"aaData":[{"ref_no":"4345643532","date":"2012-10-09T17:36:28Z","desc":"Western Union","amount":-50,"depo":"","width":"","transfer":""},{"ref_no":"4324","date":"2012-10-09T17:28:06Z","desc":"123","amount":-10,"depo":"","width":"","transfer":""},{"ref_no":"4324","date":"2012-10-09T17:27:48Z","desc":"123","amount":3.45,"depo":"","width":"","transfer":""},{"ref_no":"123","date":"2012-10-05T20:56:11Z","desc":"abc","amount":10,"depo":"","width":"","transfer":""},{"ref_no":"12","date":"2012-10-01T16:47:19Z","desc":"autorefill","amount":2000,"depo":"","width":"","transfer":""}]}
4

1 回答 1

1

因此,您实际上已经在这里使用了一些应该有所帮助的功能。

mRender将允许您呈现在定义中aoColumns定义的特定列中显示的数据。您正确地为函数标记了三个参数:

  • data(单元格的数据,基于mData键)
  • type
  • row(整行的数据集)

所以你可以做这样的事情:

...
"mRender": function(data, type, row) {
    var valueToCompare = row.someOtherCell
        returnValue = data;

    if (data > valueToCompare) { // or some similar logic
        returnValue = somethingElse;
    }

    return returnValue;
}
...

另外,作为旁注-您使用mRender几次只是为了返回data。如果您不操作该值,则没有必要 - 这是通过简单地设置mData属性隐式完成的。

于 2012-10-12T12:24:33.387 回答