{hero}

ajax.dataSrc

自:DataTables 1.10 起

用於表格資料的資料屬性或操作方法。

說明

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 屬性(如果不存在 data,則為 aaData,以實現向後相容性)。

範例

透過 Ajax 從檔案取得 JSON 資料,使用 dataSrcdata 變更為 tableData(即 { tableData: [ ...資料... ] }

$('#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
});

相關

以下選項直接相關,也可能在您的應用程式開發中很有用。