如何以编程方式将所需的行移动到数据表的顶部?

时间:2016-03-14 08:19:28

标签: javascript jquery symfony datatable

我有一个数据表,其中包含由AJAX加载的数据。我想修改它,所以当用户访问mypage /数据表时会突出显示相应的行并将其移动到表的顶部。我已使用此代码突出显示该行:

        "rowCallback": function( row, data, index ) {
        if ( data.id == given_id ) {
            $(row).addClass('success');
            console.log(index);
        }
    }

并且它可以正常工作,但是当这一行打开时,问题就出现了,例如,第10页。当用户进入网页时,数据表仅显示第一页。我想以编程方式将分页更改为所需的页面或将行移动到表格的顶部,因此当用户输入时,他会看到他的'在顶部排。怎么做到这一点?

2 个答案:

答案 0 :(得分:1)

我已经解决了我的问题。解决方案如下:

  1. 我在html表格结构中添加了额外的<th>
  2. 然后我在数据表呈现代码中添加了以下代码:

    var table = $("#table_placeholder").dataTable( {
    "ajax": Routing.generate('myAjaxUrl'),
    "columns": [
        {
            "visible": false,
            "data":"user_id",
            "render": function ( data, type, full, meta ) {
                return data == displayUserId ? 1 : 0;
            }
        },
        //-rest of the code-
    

    user_id 是从数据库导入的ID, displayUserId 是已传递的ID通过url参数并存储在隐藏的html输入中。

  3. 我在数据表呈现代码的末尾添加了以下行:

    "rowCallback": function( row, data, index ) {
        if ( data.user_id == displayUserId ) {
            $(row).addClass('highlighted-row');
            console.log(index);
        }
    },
    "order":[[0,'desc']]
    

    rowCallback 功能可让我突出显示该行,然后在隐藏列上使用 订单 2.这会将所需的行放到顶部。

答案 1 :(得分:0)

可能值得添加一个时间戳列,并在select,

上按顺序排序

或者您可以获得第一行的sortid,增加数据库中的所有sortid,然后插入新行并将其sortid设置为一行以前那个旧的顶行。

相关问题