ajax.dataSrc
表格数据的属性或操作方法。
描述
The ajax
选项基本上继承了 jQuery.ajax 提供的所有选项,但我们提供了额外的 dataSrc
选项,以提供更改 DataTables 从服务器返回的 JSON 中读取的数据的能力,或者将数据从一种形式转换为另一种形式(无论是 JSON 到另一种形式的 JSON,XML,YAML 等)。这样做是因为 ajax
的 success
选项 **不应** 被更改 - DataTables 在内部使用它来在数据加载完成后执行表格绘制。
类型
字符串
- 描述
作为字符串,
dataSrc
定义要读取的数据源对象(即由 Ajax 请求返回的对象)的属性。请注意,如果您的 Ajax 源只是返回一个要显示的数据数组,而不是一个对象,请将此参数设置为一个空字符串。
此外,您可以使用 Javascript 点表示法来获取多层对象/数组嵌套的数据源。
对象
- 描述
当作为对象提供时,此参数可用于在服务器响应与 DataTables 之间提供映射,用于其服务器端处理参数。它用于服务器响应的 JSON 格式与 DataTables 预期格式不一致的情况。
对象中可以定义四个参数
data
- 映射到data
数组的值所在位置。draw
- 映射到用于draw
参数的值所在位置。recordsTotal
- 映射到recordsTotal
参数的值所在位置。recordsFiltered
- 映射到recordsFiltered
参数的值所在位置。
请参考 服务器端处理文档 以获取有关这些参数的完整描述。
每个映射值可以是 Javascript 点表示法中的字符串或函数。如果是一个函数,则传入一个参数,即来自服务器的 JSON 响应,返回值应为该参数的值。
函数 ajax.dataSrc( data )
- 描述
作为函数,
dataSrc
提供了将从服务器返回的数据从一种形式转换为另一种形式的能力。例如,如果您的数据分布在多个数组中,您可能将其组合成一个数组,以供 DataTables 处理和显示。以这种形式,
dataSrc
可用于转换任何数据源,例如非 JSON 数据(XML,YAML 等)为 DataTables 期望的 Javascript 数组。- 参数
名称 类型 可选 1 data
否 Ajax 请求从服务器返回的数据
- 返回值
DataTables 用于绘制表格的数据数组
默认值
data
属性为数据源对象(或 aaData
,如果为了向后兼容性,data
不存在)。
示例
通过 Ajax 从文件获取 JSON 数据,使用 dataSrc
将 data
更改为 tableData
(即 { tableData: [ ...data... ] }
)
$('#example').DataTable({
ajax: {
url: 'data.json',
dataSrc: 'tableData'
}
});
通过 Ajax 从文件获取 JSON 数据,使用 dataSrc
从普通数组中读取数据,而不是从对象中的数组读取数据
$('#example').DataTable({
ajax: {
url: 'data.json',
dataSrc: ''
}
});
操作从服务器返回的数据 - 向数据添加链接(注意,这可以用 render
为列完成 - 这只是一个如何操作数据的简单示例)。
$('#example').DataTable({
ajax: {
url: 'data.json',
dataSrc: function (json) {
for (var i = 0, ien = json.data.length; i < ien; i++) {
json.data[i][0] =
'<a href="/message/' + json.data[i][0] + '>View message</a>';
}
return json.data;
}
}
});
将参数映射到 DataTables 预期 的服务器端处理参数名称。
$('#example').DataTable({
ajax: {
url: '/api/users',
dataSrc: {
data: 'results',
draw: 'request',
recordsTotal: 'total',
recordsFiltered: 'filtered'
}
},
serverSide: true
});
相关
以下选项直接相关,在您的应用程序开发中可能也很有用。