增加或修改通过Ajax提交到服务端的请求数据
当向服务器发出一个ajax请求,Datatables将会把服务器请求到的数据构造成一个数据对象。数据包含的内容取决于Datatables操作的处理模式:
serverSideOption
),详细参考 服务器处理指南
ajax.dataOption
将额外的参数添加到请求或修改需要被提交的数据对象
实际上他是参考jQuery的ajax.data属性来的,他能添加额外的参数传给服务器。 Datatables在此基础上还提供了一个函数,以便Datatables在请求服务器的时候可以处理这些数据
如果当做一个对象,ajax.dataDT
选项用于扩展Datatables构造内部对象,将额外的,静态的参数传递给服务器。对于动态的处理,使用
ajax.dataOption
作为一个函数(见下文)。
作为一个函数,
ajax.dataOption
选项可以用于修改由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)
$('#example').dataTable( { "ajax": { "url": "data.json", "data": { "user_id": 451 } } } );
通过操作数据对象添加数据请求(函数没有返回)
$('#example').dataTable( { "ajax": { "url": "data.json", "data": function ( d ) { d.extra_search = $('#extra').val(); } } } );
添加数据请求(函数有返回)
$('#example').dataTable( { "ajax": { "url": "data.json", "data": function ( d ) { return $.extend( {}, d, { "extra_search": $('#extra').val() } ); } } } );
以json格式提交
$('#example').dataTable( { "ajax": { "url": "data.json", "contentType": "application/json", "data": function ( d ) { return JSON.stringify( d ); } } } );
动态传参数
//初始化表格 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(); }
下面的选项是直接相关的,也可能是您的应用程序的开发非常有用。
Translation from DataTables.net, with permission