【问题标题】:Add data to first row using jquery DataTables使用 jquery DataTables 将数据添加到第一行
【发布时间】:2013-02-07 08:05:02
【问题描述】:

我正在使用DataTables 来显示我的数据。我正在使用 fnAddData 将新数据添加到行。此函数在表的最后插入新行。我想要的是当我添加新行时,它成为表格上的第一行。 我该怎么做?

这是我的代码:

$('#example').dataTable().fnAddData( [
                            caption,
                            grade,
                            "<span class='edit'>Edit</span><span class='delete'>Delete</span>",
                            id,
                            kind,
                            oTable.fnGetData().length ]
                        );

【问题讨论】:

    标签: jquery datatables


    【解决方案1】:

    如果设置为 "bSort": false, 你可以在你的代码之后做这样的事情

    var my_array = $('#table').dataTable().fnGetNodes( );
    var last_element = my_array[my_array.length - 1];
    console.log(last_element);        
    $(last_element).insertBefore($('#table tbody tr:first-child'));
    

    【讨论】:

    • 这里我用过 fnAddData -- var rowIndex = t.fnAddData(["c1","c2","c3","c4"]);现在我们如何使用您的解决方案在第一行附加数据,请简要写下..
    【解决方案2】:

    如果启用了排序,那么它将显示排序所在的位置。因此,您必须按将其置于顶部的列进行排序。

    如果没有启用排序,那么它几乎就像:How to move a <tr> up or down within <table> via jQuery?

    如果未启用排序,您可以尝试以下操作,我不确定这是否适用于插件,您最好不要使用 DataTables.net:

    var oTable = $('#example').dataTable()
    function MoveRowDown(tableId, index)
    {
        var rows = oTable.$("tr");
    
        rows.eq(index).insertAfter(rows.eq(index + 1));
    }
    
    function MoveRowUp(tableId, index)
    {           
        var rows = oTable.$("tr");
    
        rows.eq(index).insertBefore(rows.eq(index - 1));
    }
    

    【讨论】:

      猜你喜欢
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      相关资源
      最近更新 更多