ajax.dataSrc
用於表格資料的資料屬性或操作方法。
說明
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 資料
否 從伺服器返回以進行 Ajax 請求的資料
- 傳回
DataTables 用於繪製表格的資料陣列
預設
資料來源物件的 data
屬性(如果不存在 data
,則為 aaData
,以實現向後相容性)。
範例
透過 Ajax 從檔案取得 JSON 資料,使用 dataSrc
將 data
變更為 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
});
相關
以下選項直接相關,也可能在您的應用程式開發中很有用。