我有一个数据表,其中包含由AJAX加载的数据。我想修改它,所以当用户访问mypage /数据表时会突出显示相应的行并将其移动到表的顶部。我已使用此代码突出显示该行:
"rowCallback": function( row, data, index ) {
if ( data.id == given_id ) {
$(row).addClass('success');
console.log(index);
}
}
并且它可以正常工作,但是当这一行打开时,问题就出现了,例如,第10页。当用户进入网页时,数据表仅显示第一页。我想以编程方式将分页更改为所需的页面或将行移动到表格的顶部,因此当用户输入时,他会看到他的'在顶部排。怎么做到这一点?
答案 0 :(得分:1)
我已经解决了我的问题。解决方案如下:
<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 是已传递的ID通过url参数并存储在隐藏的html输入中。
我在数据表呈现代码的末尾添加了以下行:
"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
设置为一行以前那个旧的顶行。