2017-05-23 109 views
0

我試圖動態添加一行到DataTable,同時指定不僅表格單元格將保存的數據,而且標記將具有的屬性<td>將行添加到具有自定義屬性的DataTable​​標記

現在我有這樣的代碼

let row = [ 
     '1', 
     model.name, 
     model.surname, 
     model.personal_id, 
     model.phone_number, 
     model.loan_total_amount+'&nbsp;'+model.currency_code, 
     model.loan_current_liability+'&nbsp;'+model.currency_code, 
     model.pay_date, 
     model.transaction_id || '', 
     statuses[model.status], 
     `<ul class="icons-list"> 
      <li class="dropdown"> 
       <a href="datatable_basic.htm#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-menu7"></i></a> 
       <ul class="dropdown-menu dropdown-menu-right"> 
        <li><a href="datatable_basic.htm#"><i class="icon-paperplane"></i> send sms</a></li> 
        <li><a href="datatable_basic.htm#"><i class="icon-diff-removed"></i>mark as payd</a></li> 
       </ul> 
      </li> 
     </ul>` 
    ]; 

    let node = paymentsTable.row.add(row).draw(); 

我希望能夠做這樣的事

paymentsTable.row.add([ 
    { html : 'some html', className: 'some class', data-whatever:'whatever' }, 
    { html : 'some another html', className: 'some class', data-whatever:'whatever' } 
]) 

在添加的行這種情況下,第一個單元格將有內容「某些html」類的「某些類」和數據 - 無論是「什麼」

+1

你不能。該文件明確指出。使用'createdCell'回調或在插入的節點上使用一些簡單的鏈接。 – davidkonrad

回答

1

當您的廣告d在數據表中的行,就可以得到這個新創建row object如下:

var rowNode = oTable 
     .row.add([cellData, cellData, cellData, cellData, cellData, cellData]) 
     .draw(false) 
     .node(); 

你可以注入你的CSS class在期望這個新創建的行的td

$(rowNode).find('td:eq(1)').addClass('myClass'); 
$(rowNode).find('td:eq(3)').addClass('myClass2'); 

查看此JSFiddle Example進行演示。

+1

你甚至可以在一行中完成,這裏是一個使用鏈接到極端的例子 - >'table.row.add(['test','test2'])。nodes()。to $()。find ('td:eq(0)')。addClass('someClass')。attr('data-whethever','whatever')。end()。find('td:eq(1)')。addClass(' someOtherClass')'etc etc ** http://jsfiddle.net/0f9Ljfjr/929/**,但我想我會創建一個小的'add()'插件來代替這個簡單的工作。 – davidkonrad