【问题标题】:Index number on search should keep its original value, not restart搜索的索引号应保持其原始值,而不是重新启动
【发布时间】:2014-08-22 07:20:47
【问题描述】:

我正在使用数据表 v1.10,随着时间的推移,它已经有了很大的改进。但是我正在尝试添加索引号。

到目前为止,我已经设法添加了索引号,但我无法记录在搜索后保留它的原始索引号。

假设我有这张桌子:

POSITION NAME
0        Tennis
1        Football
2        Basketball

如果我搜索篮球,我应该像这样返回 POSITION 2:

POSITION NAME
2        Basketball

但是,数据表并没有给出位置 2,而是从 0 开始重新计数(或者在我的情况下为 1,因为我让它从 1 开始)

我希望索引号在搜索后保持其正确值。

上次使用时间:

"fnDrawCallback": function ( oSettings ) {
     if ( oSettings.bSorted || oSettings.bFiltered ) {
        for ( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ ){
            $('td:eq(0)', oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ).html( i+1 );
        }   
     }
},      

我尝试将其转换为他们的新 api,但找不到正确的解决方法。

这是我正在使用的当前服务器端代码:

require('ssp.class.php');

$result=SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns );
$start=$_REQUEST['start'] + 1;
foreach($result['data'] as &$res){
    $res["id"]=(string)$start;
    $start++;
}
echo json_encode($result);

和客户端:

$(document).ready(function() {
    var t = $('#table-data').DataTable( {               
        "processing": true,
        "serverSide": true,
        "ajax": {
            "url": "index.php",
            "type": "GET"
        },
        "columns": [
            {"data": "position"},
            {"data": "name"},
        ]

    });
});

我的问题类似于:Make jQuery datatables keep the row number assigned when searching/sorting

我尝试了那里建议的代码,但它似乎在 datatables v1.10 中不起作用(我更改了正确的 api 命名)

【问题讨论】:

    标签: datatables jquery-datatables datatables-1.10


    【解决方案1】:

    是的,可以通过以下代码实现:

    $(document).ready(function() {
    var t = $('#table-data').DataTable( {               
        "processing": true,
        "serverSide": true,
        "ajax": {
            "url": "index.php",
            "type": "GET"
        },
        "columns": [
            {"data": "position"},
            {"data": "name"},
        ]
    
    });
    t.on( 'order.dt search.dt', function () {
        t.column(0, { order:'applied'}).nodes().each( function (cell, i) {
            cell.innerHTML = i+1;
        } );
    } ).draw(); 
    }); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-13
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多