jquery datatable保留行重新加载后
我重新加载我的数据表10秒的间隔。当用户点击一行时,该行将突出显示。但是当数据表重新加载时,突出显示消失了。jquery datatable保留行重新加载后
这里是我确定年代缩短代码:
$(document).ready(function()
{
// set datatable
$('#example1').DataTable({
"ajax": {
"url": "api/process.php",
"type": "POST",
"dataSrc": ''
},
"columns": [
{ "data": "" },
{ "data": "column1" },
{ "data": "column2" },
{ "data": "column3" }
],
"iDisplayLength": 25,
"order": [[ 6, "desc" ]],
"scrollY": 600,
"scrollX": true,
"bDestroy": true,
"stateSave": true
});
// reload datatable every 30 seconds
setInterval(function()
{
var table = $('#example1').DataTable();
table.ajax.reload();
}, 30000);
// highlight row
$('#example1 tbody').on('click', 'tr', function()
{
$('#example1 tbody > tr').removeClass('selected');
$(this).addClass('selected');
});
});
以上所有作品它究竟应该如何工作的。在数据表重新加载后,我只需要保留行高亮。
请帮助,并提前谢谢。
也...
我试图从这个职位的答案:jquery datatable highlight drops off after reload
但我报废了它作为行不再亮点。
你应该检查他们的实际选择文件来操纵这个。该功能已经内置,并在ajax.reload()上进行设置,它将保留您的选择。
你也可以用他们的方法应用类/样式。
请用以下更改更新js文件。下面的代码将保存在全局参数中点击的行,然后在ajax调用之后聚焦单击的行。
var gblIndex = 0; //this will save row clicked index
function setFocus(){
$($('#example1 tbody > tr')[gblIndex]).addClass('selected');
}
$(document).ready(function()
{
// set datatable
$('#example1').DataTable({
"ajax": {
"url": "api/process.php",
"type": "POST",
"dataSrc": ''
},
"columns": [
{ "data": "" },
{ "data": "column1" },
{ "data": "column2" },
{ "data": "column3" }
],
"iDisplayLength": 25,
"order": [[ 6, "desc" ]],
"scrollY": 600,
"scrollX": true,
"bDestroy": true,
"stateSave": true
});
// reload datatable every 30 seconds
setInterval(function()
{
var table = $('#example1').DataTable();
table.ajax.reload();
setFocus(); // this will set focus/highlight row
}, 30000);
// highlight row
$('#example1 tbody').on('click', 'tr', function()
{
$('#example1 tbody > tr').removeClass('selected');
$(this).addClass('selected');
gblIndex = $(this).index(); // this will save the index clicked
});
});
我得到以下错误:SyntaxError:意外的标记[它指向函数setFocus()中的[gblIndex]。 –
请删除空格[gblIndex]并勾选 –
删除空格,但仍然收到相同的错误。 –
你可以添加一个工作小提琴。我想我可以帮助你,如果我工作小提琴... – Ashish451
请解释你为什么要删除并添加使用两个不同的选择器'选定'类$('#example1 tbody> tr')。removeClass('selected'); $(this).addClass('selected'); –
你想突出显示哪一行,任何特定行?我看不到任何发生在任何行上的事情,然后点击其他玩类的东西? Ajax调用正在发生,而不管任何单击的行。 –