{hero}

stateSaveCallback

自:DataTables 1.10 起

定义表格状态存储方式及位置的回调函数。

说明

DataTables 保存表格的状态(分页、过滤等),默认情况下,它会使用 HTML5 的 localStorage 来保存状态。当启用 stateSave 选项时,此回调方法允许你更改状态的保存位置(例如,你可能希望使用服务器端数据库或 Cookie)。

提供给函数的数据是一个具有以下结构的对象

{
    "time":   {number}               // Time stamp of when the object was created
    "start":  {number}               // Display start point
    "length": {number}               // Page length
    "order":  {array}                // 2D array of column ordering information (see `order` option)
    "search": {
        "search":          {string}  // Search term
        "regex":           {boolean} // Indicate if the search term should be treated as regex or not
        "smart":           {boolean} // Flag to enable DataTables smart search
        "caseInsensitive": {boolean} // Case insensitive flag
    },
    "columns" [
        {
            "visible": {boolean}     // Column visibility
            "search":  {}            // Object containing column search information. Same structure as `search` above
        }
    ]
}

请注意,其他拓展可以向此结构添加额外信息,或者你可以使用 stateSaveParamsstateSaveParams 来添加你自己的参数。此外,存储的信息是类型敏感的 - 也就是说,DataTables 提供的数据的数据类型必须保留。例如,start 参数必须是 number 数据类型。

此方法只要求存储提供给它的数据。 stateSaveParams 方法用于操作实际上要保存的数据。

此回调函数与 stateLoadCallback 协同工作。此方法保存状态,而 stateSaveCallback 将从此回调函数保存的位置中加载状态。

类型

function stateSaveCallback( settings, data )

参数

示例

使用 Ajax 在服务器上保存状态

new DataTable('#myTable', {
	stateSave: true,
	stateSaveCallback: function (settings, data) {
		// Send an Ajax request to the server with the state object
		$.ajax({
			url: '/state_save',
			data: data,
			dataType: 'json',
			type: 'POST',
			success: function () {}
		});
	}
});

相关

以下选项直接相关,在你的应用程序开发中也可能有用。