{hero}

responsive.details.renderer

自:Responsive 1.0.0

定义用于显示子行的渲染器。
请注意 - 此属性需要 Responsive 扩展,用于 DataTables。

说明

由 Responsive 显示的详细信息行中包含的信息是通过此功能创建的。默认情况下,它会创建一个 ul / li 列表,显示隐藏的单元格中的数据,或者您可以使用其他内置渲染器之一,或提供您自己的渲染器。

呈现功能针对表中的详细显示执行,并且只要表的列可见性发生更改,就会运行此功能。

请注意,与 Responsive 的所有其他配置选项一样,此选项是 默认 DataTables 选项集 的扩展。此属性应在 DataTables 初始化对象中设置。

自 v2.1.0 起,Responsive 具有许多内置呈现功能,可以从 DataTable.Responsive.renderer 对象访问。内置渲染器作为必须执行的功能提供,并且将返回所需的渲染器。这提供了向渲染器传递选项的能力。

内置选项为

  • listHidden - 在 ul / li 列表中显示已隐藏的数据。
    • 没有其他选项
    • 默认渲染器
  • listHiddenNodes - 与 listHidden 相同,但将 DOM 节点从表单元格移动到列表中。如果需要,这可用于保留单元格内容上的事件处理程序。
    • 没有其他选项
  • tableAll - 在 table 中显示所有列的数据(无论是否已隐藏)。
    • 单一选项:tableClass - 应用于创建的表的类名称。

如果您希望使额外的渲染器模块化,还可以创建它们并附加到此对象。如果是这样,请 随时与社区 分享它们!

在为要显示的每个项目创建 HTML 时,最好根据给定的 rowIndexcolumnIndex 信息添加 data-dt-rowdata-dt-column 属性。这允许将这些元素及其子元素传递给 DataTables API 选择器方法(例如 cell()),并用作 API 的常规部分。

类型

function renderer( api, rowIdx, columns )

参数
返回

有两种返回值

  • 布尔值 false - 不显示子行
  • 字符串 - 详细信息显示中的信息,包括任何必需的 HTML。

默认值

  • 值: 函数

将在 ul/li 列表中显示隐藏信息的函数。

示例

使用 tableAll 渲染器,不指定类名称

new DataTable('#myTable', {
	responsive: {
		details: {
			renderer: DataTable.Responsive.renderer.tableAll()
		}
	}
});

使用 tableAll 渲染器,并指定一个类名称

new DataTable('#myTable', {
	responsive: {
		details: {
			renderer: DataTable.Responsive.renderer.tableAll({
				tableClass: 'ui table'
			})
		}
	}
});

自定义渲染器,在 HTML 表格中显示已隐藏的数据

new DataTable('#myTable', {
	responsive: {
		details: {
			renderer: function (api, rowIdx, columns) {
				var data = $.map(columns, function (col, i) {
					return col.hidden
						? '<tr data-dt-row="' +
								col.rowIndex +
								'" data-dt-column="' +
								col.columnIndex +
								'">' +
								'<td>' +
								col.title +
								':' +
								'</td> ' +
								'<td>' +
								col.data +
								'</td>' +
								'</tr>'
						: '';
				}).join('');

				return data ? $('<table/>').append(data) : false;
			}
		}
	}
});