所以我使用這個屬性「bStateSave」:true保存jQuery Datatable的狀態,但由於某種原因它不適用於我。當我執行頁面刷新時,它不保存搜索結果和分頁等。是否還有其他一些參數需要與此一起進行。我主要是這個頁面jQuery Datatable,像分頁,搜索等保存表的狀態
http://datatables.net/examples/basic_init/state_save.html
代碼太龐大嚇壞被張貼上會通過的信息,我不知道什麼剪斷我應該用於發佈。在此先感謝您的幫助。
所以我使用這個屬性「bStateSave」:true保存jQuery Datatable的狀態,但由於某種原因它不適用於我。當我執行頁面刷新時,它不保存搜索結果和分頁等。是否還有其他一些參數需要與此一起進行。我主要是這個頁面jQuery Datatable,像分頁,搜索等保存表的狀態
http://datatables.net/examples/basic_init/state_save.html
代碼太龐大嚇壞被張貼上會通過的信息,我不知道什麼剪斷我應該用於發佈。在此先感謝您的幫助。
您在瀏覽器中檢查時是否看到cookie?我使用Chrome和開發者工具查看您發送的鏈接的當前Cookie。我看到一個名爲「datatables.net」的cookie存儲在我的機器上。在嘗試自定義DataTables代碼時,你看到這個cookie嗎?
所以我嘗試這個警報(dojo.cookie(「datatables.net」)),它說「未定義」。這是什麼意思 ?有沒有設置cookie?但是我認爲,在內部,API就是這樣做的,它設置了Cookie,然後讀取它以保存表的狀態。 – user1006072 2012-04-24 21:21:56
@ user1006072如果您可以使用Firefox中的擴展名Firecookie,它會告訴您更多信息。您應該看到如下所示的內容:SpryMedia_DataTables_
謝謝@Tom。我會給這個鏡頭。 – user1006072 2012-04-25 23:47:16
首先,你要確保你有一個cookie,一旦你加載你的頁面跳轉到chrome,點擊「設置」,然後「顯示高級設置」,在隱私部分點擊內容設置。
下面是來自該網站的代碼示例,在我的web應用程序中正常工作,並確保您擁有該插件的最新版本。
$('#MyExampleGrv').dataTable({
"bStateSave": true,
"fnStateSave": function (oSettings, oData) {
localStorage.setItem('DataTables_' + window.location.pathname, JSON.stringify(oData));
},
"fnStateLoad": function (oSettings) {
var data = localStorage.getItem('DataTables_' + window.location.pathname);
return JSON.parse(data);
}
});
這段代碼的含義,是讓本地存儲來代替餅乾,並使用特定而不只是使用一個通用的標識稱爲數據表,這樣,如果你有另一個頁面上表中的頁面時,會出現沒有衝突。如果您使用ASP.NET控件和GridView,如果您使用內置於ASP.NET中的通用CRUD操作(例如EDIT/DELETE/UPDATE)以及您的編輯器,則此代碼不會執行此代碼的保存分頁狀態項目在分頁第3頁上,回發後默認爲第1頁,甚至通過AJAX進行部分回發。
小警告。如果您的網站/應用程序URL很安靜,此方法可能會逐漸填滿本地存儲空間。您可能想要增強此代碼以從「window.location.pathname」中刪除任何ID。 – Jess 2017-09-21 12:57:14
我知道這個答案不是關於這個舊版本的datatables,但我相信它會幫助新手。
從2011年到現在,Datatables API發生了很大變化。 要保存數據表的狀態,請使用HTML5 LocalStorage或DB(ajax回調)。 啓用狀態,使用本地存儲保存,你做以下電話:
$(document).ready(function() {
$('#datatable').DataTable({
stateSave: true,
});
});
如果你想使用的sessionStorage的代替localStorage的:
$(document).ready(function() {
$('#datatable').DataTable({
stateSave: true,
stateDuration:-1 //force the use of Session Storage
});
});
如果你想使用一個數據庫避免將它們存儲在瀏覽器中,那麼您必須使用選項stateSaveCallback和stateLoadCallback中定義的回調函數。
下面是一個例子和源代碼的教程將告訴您如何實現上述所有的方法:Datatables state save client and server-side
工作就像一個魅力對我來說。謝謝! – 2016-11-23 15:53:53
我用它爲好,我沒有任何問題。嘗試檢查您的Cookie。你至少可以在你的javascript代碼中發佈你的dataTable()調用嗎? – Tom 2012-04-24 21:10:55