{hero}

ajax.dataSrc

自 DataTables 1.10 起

表格数据的属性或操作方法。

描述

The ajax 选项基本上继承了 jQuery.ajax 提供的所有选项,但我们提供了额外的 dataSrc 选项,以提供更改 DataTables 从服务器返回的 JSON 中读取的数据的能力,或者将数据从一种形式转换为另一种形式(无论是 JSON 到另一种形式的 JSON,XML,YAML 等)。这样做是因为 ajaxsuccess 选项 **不应** 被更改 - 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 数组。

参数
返回值

DataTables 用于绘制表格的数据数组

默认值

data 属性为数据源对象(或 aaData,如果为了向后兼容性,data 不存在)。

示例

通过 Ajax 从文件获取 JSON 数据,使用 dataSrcdata 更改为 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
});

相关

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