簡體   English   中英

jQuery dataTable排序與ajax加載的數據

[英]jQuery dataTable sort with ajax loaded data

我有幾行包含一些延遲加載的數據。 例如,

  <table border="1"> <tr> <th>Employee</th><th>Sales</th> </tr> <tr> <td>Michale</td><td>1000</td> </tr> <tr> <td>Kim</td><td id="kimSales"></td> </tr> <tr> <td>John</td><td id="johnSales"></td> </tr> </table> 

問題是,由於某些原因, 我必須在頁面加載后檢索一些數據 假設kimSales1500 ,johnSales為2500

<script>
    $(document).on('ready', function(e){
         $('#kimSales').text(1500);
         $('#johnSales').text(2500);
    })     
</script>

在這種情況下,我想對延遲加載的數據進行正確排序。 您知道,jQuery dataTable通過列的單擊標題具有排序功能,例如https://datatables.net,我無法正確地對這些數據進行排序。 排序后的數據沒有上升,或者是dsc ---也許dataTable在加載數據后無法識別。

我試過了

<script>
    $(document).on('ready', function(e){
         $('#kimSales').text(1500);
         $('#johnSales').text(2500);
    })

    table.dataTable(); // not properly working
</script>

如果初始化表之前更新單元格的數據,它應該可以正常工作。

另外,您應該在ready事件處理程序中初始化表。 例如:

$(document).on('ready', function(e){
     $('#kimSales').text(1500);
     $('#johnSales').text(2500);

     var table = $('#example').DataTable();
});

如果在初始化表更新單元格的數據,則需要使用cell().invalidate() API方法並重繪表。

例如:

$(document).on('ready', function(e){
     var table = $('#example').DataTable();

     $('#kimSales').text(1500);
     table.cell($('#kimSales').closest('td')).invalidate();

     $('#johnSales').text(2500);
     table.cell($('#johnSales').closest('td')).invalidate();

     table.draw();
});

我希望您希望根據第二列進行排序。 在表初始化代碼中,並使用首選的排序技術[asc,desc]嘗​​試此操作

 $('table').DataTable( {
        "order": [[ 1, "desc" ]]
    } );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM