2013-01-05 38 views
1

我需要改變基於元素位置的渲染單元,在不改變數據, 在文檔,我發現mDatamRender選項,我試着用fnRender(這是depricated),但它給我的位置,但在渲染時更改表格中的數據,所以我想知道在渲染時是否有任何方法來獲取單元格位置,或者我應該在每次更改後自行重新渲染表格?如何得到數據表當前呈現的元素

下面的代碼說明了我的需求:

$(document).ready(function() { 
    var oTable = $('#example').dataTable({ 
    "aoColumnDefs": [ { 
     "aTargets": ['_all'], 
     "mRender": function (data, type, full) 
     { 
     if (type!='display') return data; 
     //HOW to get current cell indexes or DOM element here ? 
     console.log(this,data,type,full); 
     return data+' ttt'; 
     } 
    } ] 
    }); 

    $('#example > tbody > tr').on('click','td',function() { 
    console.log(this); 
    var pos=oTable.fnGetPosition(this); 
    var value=oTable.fnGetData(this); 
    oTable.fnUpdate(value.split("").reverse().join(""),pos[0],pos[2]); 
    }); 


    var button=$('<button>').text('clickme'); 
    button.click(function() { console.log(oTable.fnGetData());}); 
    $('body').append(button); 
}); 

http://live.datatables.net/enirid/3/edit

使用fnRender樣本:

$(document).ready(function() { 
    var oTable = $('#example').dataTable({ 
    "aoColumnDefs": [ { 
     "aTargets": ['_all'], 
     "fnRender": function (obj, data) 
     { 
     console.log(obj,data); 
     var col=obj.iDataColumn; 
     //HOW to change display here without changing data of table 
     return data+' '+col; 
     } 
    } ] 
    }); 


    $('#example > tbody > tr').on('click','td',function() { 
    console.log(this); 
    var pos=oTable.fnGetPosition(this); 
    var value=oTable.fnGetData(this); 
    oTable.fnUpdate(value.split("").reverse().join(""),pos[0],pos[2]); 
    }); 


    var button=$('<button>').text('clickme'); 
    button.click(function() { console.log(oTable.fnGetData());}); 
    $('body').append(button); 
}); 

http://live.datatables.net/opubaj/edit

回答

0

嘗試fnCreatedCell。 附從datatables.net提供的示例代碼片段:

$(document).ready(function() { 
    $('#example').dataTable({ 
    "aoColumnDefs": [ { 
     "aTargets": [3], 
     "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) { 
     if (sData == "1.7") { 
      $(nTd).css('color', 'blue') 
     } 
     } 
    } ] 
    }); 
}); 
+0

該事件還需要經過'fnUpdate',我現在就更新問題被使用,而我需要更改單元格文本,不是細胞類 –

+0

問題更新 –

相關問題