2017-08-14 101 views
0

我重新加載我的數據表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

但我報廢了它作爲行不再亮點。

+1

你可以添加一個工作小提琴。我想我可以幫助你,如果我工作小提琴... – Ashish451

+1

請解釋你爲什麼要刪除並添加使用兩個不同的選擇器'選定'類$('#example1 tbody> tr')。removeClass('selected'); $(this).addClass('selected'); –

+1

你想突出顯示哪一行,任何特定行?我看不到任何發生在任何行上的事情,然後點擊其他玩類的東西? Ajax調用正在發生,而不管任何單擊的行。 –

回答

-1

你應該檢查他們的實際選擇文件來操縱這個。該功能已經內置,並在ajax.reload()上進行設置,它將保留您的選擇。

你也可以用他們的方法應用類/樣式。

https://datatables.net/reference/option/#select

1

請用以下更改更新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 
    }); 
}); 
+0

我得到以下錯誤:SyntaxError:意外的標記[它指向函數setFocus()中的[gblIndex]。 –

+1

請刪除空格[gblIndex]並勾選 –

+0

刪除空格,但仍然收到相同的錯誤。 –

相關問題