如何以编程方式将所需行移动到数据表的顶部
How to programatically move the desired row to the top of datatable?
我有一个数据表,其中包含 AJAX 加载的数据。我想修改它,所以当用户访问mypage/数据表时,数据表会突出显示相应的行并将其移动到表的顶部。我已经用这段代码突出显示了该行:
"rowCallback": function( row, data, index ) {
if ( data.id == given_id ) {
$(row).addClass('success');
console.log(index);
}
}
它可以工作,但是当此行位于例如第 10 页上时会出现问题。当用户进入网页时,数据表仅显示第一页。我想以编程方式将分页更改为所需的页面或将行移动到表格顶部,因此当用户输入时,他会在顶部看到"他的"行。如何实现这一点?
我已经解决了我的问题。解决方案如下:
- 我在 html 表结构中添加了其他
<th>
。 -
然后,我在数据表呈现代码中添加了以下代码:
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 是通过 url 参数传递并存储在隐藏的 html 输入中的 ID。
-
我在数据表呈现代码的末尾添加了以下行:
"rowCallback": function( row, data, index ) { if ( data.user_id == displayUserId ) { $(row).addClass('highlighted-row'); console.log(index); } }, "order":[[0,'desc']]
rowCallback 函数允许我突出显示该行,然后我从 2 开始对隐藏列进行用户排序。这会将所需的行带到顶部。
可能值得添加一个时间戳列,并在选择时按它排序,
或者,您可以获取顶行的sortid
,递增数据库中的所有sortid
,然后插入新行并将其sortid
设置为旧顶行之前具有的行。
相关文章:
- 用程序搜索JQuery数据表中的文本
- 具有rowGrouping的数据表无法隐藏列
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 将单击事件添加到数据表
- 使用带有参数的数据表sAjaxSource
- 对角度数据表中括号内的数字进行排序
- 动态构建一个数据表与scriplets
- jquery数据表的自定义ko绑定
- 预览数据表单
- 如何在数据表中设置从Ajax响应选中的复选框
- DT数据表背景颜色为黑色,但仍有悬停和选择颜色
- 如果我在页面之间移动,Jquery 数据表行事件会卡住
- 数据表移动行按钮
- 如何以编程方式将所需行移动到数据表的顶部
- 将数据库数据检索到JSON-移动登录表单
- 使用jquery将数据从表1移动到表2
- 数据表行移动到引导模式后面使用RowReorder
- 如何移动到特定页面的详细数据表根据页码单击
- 移动数据表中分页旁边的每页记录
- 当 ul-li 切换时,数据表会移动