{hero}

row().child()

自 DataTables 1.10 起

取得/設定所選主表格列的子列。

說明

DataTables 能夠為每個列顯示子列(在本文檔中稱為「父列」,以區分子列)。這些子列附加到每個父列,可用於提供有關父列的額外資訊,或編輯表單。無論表格的排序、搜尋條件等如何,子列將始終緊接在父列之後(如果使用 row().child.show() 方法指定子列為可見)。如果父列在 DataTables 的目前視圖中不可用,子列也不會可見。

子列的內容完全獨立於主表格(除了它們在文件中的位置)。套用至表格的排序、搜尋等對子列的順序沒有影響。每個子列通常包含一個單元格,其具有設定為跨越整個表格寬度的 colspan 屬性,因此單元格的內容會覆蓋整個表格寬度。但是,也可以傳遞一個具有多個單元格(每個表格列一個)的 tr 元素,以在與主表格相同的欄結構中顯示子列數據。

一個父列可以同時附加一個或多個子列。但是,子列被 API 視為一個實體,也就是說,它們可以全部顯示或全部隱藏。

此外,子列可以在隱藏後保留,以便將來需要時可以快速輕鬆地再次顯示。使用 row().child.hide() 執行隱藏列的操作。如果不再需要子列,也可以使用 row().child.remove() 或此方法並將 false 作為唯一參數來銷毀子列(隱藏並釋放其分配的記憶體)。

請注意,此方法不會在建立子列時自動使其可見。請使用 row().child().show() 鏈式方法(或根據需要使用 row().child.show())。

類型

function row().child()

說明

取得已為父列設定的子列。

回傳

jQuery 物件,其中包含父列的子列,如果尚未為父列設定任何子列,則為 undefined

自 1.10.1 起

function row().child( showRemove )

說明

顯示或移除並銷毀所選列的子列。

參數
回傳

DataTables API 實例

function row().child( data [, className ] )

說明

設定要在子列中顯示的數據。請注意,呼叫此方法將取代已附加到父列的任何子列。

參數
回傳

DataTables API 實例

範例

根據列的目前狀態顯示/隱藏列,並根據需要添加列內容。

var table = new DataTable('#myTable');

$('#example tbody').on('click', 'td.details-control', function () {
	var tr = $(this).parents('tr');
	var row = table.row(tr);

	if (row.child.isShown()) {
		// This row is already open - close it
		row.child.hide();
		tr.removeClass('shown');
	}
	else {
		// Open this row (the format() function would return the data to be shown)
		row.child(format(row.data())).show();
		tr.addClass('shown');
	}
});

為表格中的單個列建立多個子列 - 第一個可見的列。

var table = new DataTable('#myTable');

table
	.row(':eq(0)')
	.child(['First child row', 'Second child row', 'Third child row'])
	.show();

將子列添加到所有列,傳入 jQuery 建立的 tr 元素並顯示所有子列

var table = new DataTable('#myTable');

table.rows().every(function () {
	this.child(
		$(
			'<tr>' +
				'<td>' +
				rowIdx +
				'.1</td>' +
				'<td>' +
				rowIdx +
				'.2</td>' +
				'<td>' +
				rowIdx +
				'.3</td>' +
				'<td>' +
				rowIdx +
				'.4</td>' +
				'</tr>'
		)
	).show();
});