首页 文章

如何在datatables jquery中添加多行

提问于
浏览
12

我使用https://datatables.net/reference/api/rows.add%28%29链接工作,但数据显示表为 [object,object] . 如何将对象显示为字符串 . 我用 JSON.stringify(obj) 它也没用 .

HTML

<table id="exampleTable">
 <thead>
  <tr>
   <th>Year</th>
   <th>Month</th>
   <th>Savings</th>
  </tr>
 </thead>
 <tbody>
   <tr>
    <td>2012</td>
    <td>January</td>
    <td>$100</td>
   </tr>
   <tr>
    <td>2012</td>
    <td>February</td>
    <td>$80</td>
   </tr>
 </table>

JS

$('#addRows').click(); 

var table3 = $('#exampleTable').DataTable(); 

$('#addRows').on( 'click', function () { 
    table3.row.add(
       [ { "Year": "Tiger Nixon", "Month": "System Architect", "Savings": "$3,120" },
         {"Year": "Tiger Nixon", "Month": "System Architect", "Savings": "$3,120" }]
    ).draw(); 
});

3 回答

  • 2

    我在这个FIDDLE中创建了两个样本 .

    如果要在行中使用对象,则应在数据表init中添加列:

    JS

    var table3 = $('#exampleTable').DataTable({
        data:[{ "Year": "2012", "Month": "January", "Savings": "$100" },
          { "Year": "2012", "Month": "February", "Savings": "$80" }],
        columns:[{data: 'Year'},
            {data: "Month"},
            {data: "Savings"}]
    });
    

    但是如果你不想这样做,可以在行中使用下一个语法add:

    JS

    table4.rows.add(
       [[ "Tiger Nixon", "System Architect","$3,120" ],
         ["Tiger Nixon", "System Architect", "$3,120" ]]
    ).draw();
    

    fiddle它更有用 .

  • 14

    我也遇到了这个问题 - 我发现文档不太清楚 . 当我传递自己动态创建的对象数组时,他们在https://datatables.net/reference/api/rows.add()上的示例不起作用 .

    为了使其工作,您必须在实例化DataTables时指定列的名称 .

    无论如何,以下是一个有效的解决方案 .

    var DataTable = $('#tableName').DataTable({
      iDisplayLength: 15,   // number of rows to display
      columns: [
        { data: 'id' },
        { data: 'name' },
        { data: 'car' },
      ]
    });
    
    // assume this is a dynamically created array of objects
    var persons = [
      {
        id: 1,
        name: 'John',
        car: 'Mercedes',
      }, 
      {
        id: 2,
        name: 'Dave',
        car: 'BMW',
      }, 
      {
        id: 3,
        name: 'Ken',
        car: 'Jeep',
      },  
    ];
    
    DataTable.rows.add(persons).draw();
    
  • 1

    Try this `

    var data = [
      {id : 1, name : 'John'},
      {id : 2, name : 'Joe'},
      {id : 3, name : 'Mathan'},
      {id : 4, name : 'Mani'},
      {id : 4, name : 'Karthik'}
    ];
    

    //初始化数据表

    var DataTable = $('#tableName').DataTable({
     iDisplayLength: 15,  
     columns: [
     { data: 'id' },
     { data: 'name' },
     ]
    });
    
    DataTable.rows.add(data).draw();
    

相关问题