来自:http://datatables.club/reference/option/ajax.data.html
异步数据(ajax.data)
增加或修改通过Ajax提交到服务端的请求数据
说明
当向服务器发出一个ajax请求,Datatables将会把服务器请求到的数据构造成一个数据对象。数据包含的内容取决于Datatables操作的处理模式:
- 纯客户端处理,没有其他额外的数据需要提交给服务器
- 服务器处理(
serverSideOption
),详细参考 服务器处理指南
ajax.dataOption
ajax.data不定时一讲
将额外的参数添加到请求或修改需要被提交的数据对象
实际上他是参考jQuery的ajax.data属性来的,他能添加额外的参数传给服务器。 Datatables在此基础上还提供了一个函数,以便Datatables在请求服务器的时候可以处理这些数据
数据类型
对象(object)
- 描述:
-
如果当做一个对象,
ajax.dataDT
选项用于扩展Datatables构造内部对象,将额外的,静态的参数传递给服务器。对于动态的处理,使用ajax.dataOption
ajax.data不定时一讲
作为一个函数(见下文)。
函数(function) ajax.data( data )
- 描述:
-
作为一个函数,
ajax.dataOption
ajax.data不定时一讲
选项可以用于修改由Datatables内部构造的原始数据或者完全取代这些,然后ajax请求到服务器在每次Datatables请求服务器时都可以动态计算提交的参数,比如你可以添加一个文本框当做过滤的条件
- 参数:
- 返回:
-
If there is no return value from the function (i.e.
undefinedJS
) then the original data object passed into the function by DataTables will be used for the request (the function may have manipulated its values).If an object is returned, then that object will be used as the data for the request. It will not be merged with the original data object constructed by DataTables before being sent.
If a string is returned, this string it will be used in the Ajax request body rather than individual HTTP parameters being sent. This is particularly useful for sending JSON encoded data in the request body so the server can decode it directly, rather than individual HTTP parameters being sent. See example below for how to use
JSON.stringify()
to achieve this.
示例
添加一个静态值,来提交额外的参数(user_id)
1
2
3
4
5
6
7
8
|
$(
'#example'
).dataTable( {
"ajax"
: {
"url"
:
"data.json"
,
"data"
: {
"user_id"
: 451
}
}
} );
|
通过操作数据对象添加数据请求(函数没有返回)
1
2
3
4
5
6
7
8
|
$(
'#example'
).dataTable( {
"ajax"
: {
"url"
:
"data.json"
,
"data"
:
function
( d ) {
d.extra_search = $(
'#extra'
).val();
}
}
} );
|
添加数据请求(函数有返回)
1
2
3
4
5
6
7
8
9
10
|
$(
'#example'
).dataTable( {
"ajax"
: {
"url"
:
"data.json"
,
"data"
:
function
( d ) {
return
$.extend( {}, d, {
"extra_search"
: $(
'#extra'
).val()
} );
}
}
} );
|
以json格式提交
1
2
3
4
5
6
7
8
9
|
$(
'#example'
).dataTable( {
"ajax"
: {
"url"
:
"data.json"
,
"contentType"
:
"application/json"
,
"data"
:
function
( d ) {
return
JSON.stringify( d );
}
}
} );
|
动态传参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
//初始化表格
var
oTable = $(
"#example"
).DataTable({
ajax: {
url:
"dataList.action"
,
data: {
args1:
"我是固定传参的值,在服务器接收参数[args1]"
}
}
});
//当你需要多条件查询,你可以调用此方法,动态修改参数传给服务器
function
reloadTable() {
var
name = $(
"#seName"
).val();
var
admin = $(
"#seAdmin"
).val();
var
param = {
"obj.name"
: name,
"obj.admin"
: admin
};
oTable.settings()[0].ajax.data = param;
oTable.ajax.reload();
}
|
相关
下面的选项是直接相关的,也可能是您的应用程序的开发非常有用。