详细信息视图
在窄屏幕上,当响应式从显示中移除列时,隐藏列中的数据可能仍然对最终用户有用且相关。为此,响应式具有以多种方式显示行中信息的能力,包括使用 DataTables 的子行功能 (row().child()
) 或模式弹出窗口。此功能也可扩展,并且必要时可以定义自定义方法。
显示方法
通过 responsive.details.display
选项控制可以显示行信息的方式。应当将此选项设置为将显示行信息(基于呈现的数据 - 见下文)的函数。响应式内置的显示选项可在 $.fn.dataTable.Responsive.display
对象中获取,如下所示
childRow
- 在子行(最终用户可切换其可见性)中显示隐藏的信息。childRowImmediate
- 立即在子行中显示信息,而无需等待用户请求modal()
- 在模式弹出窗口中显示信息 - 请注意,这是一个函数,分配时应当执行 - 这是为了允许将选项传递到正在使用的模式库(有关详细信息,请参阅responsive.details.display
参考文档)。当响应式与 Bootstrap、Foundation 或 jQuery UI 一起使用时,它将自动使用其本机模式对话库。
例如,可以使用子行通过以下初始化使用立即显示控件
$('#myTable').DataTable( {
responsive: {
details: {
display: $.fn.dataTable.Responsive.display.childRowImmediate
}
}
} );
childRow
显示方法是响应式将使用的默认选项。它使用子行来显示响应式隐藏的数据。为了保持屏幕简洁,默认情况下子行不可见,但最终用户可以选择查看数据(如果他们希望的话)。
有关如何创建自定义渲染器的信息,请参阅 responsive.details.display
参考文档。如果您创建了一个,请告诉我们!
呈现选项
自适应有一个内置的渲染工具,它将表格隐藏列中的数据显示在详情行中。这是一个包含列标题和数据本身的 ul/li
列表。每当列可见性发生变化(例如,桌面浏览器调整大小)时,渲染工具都会重新执行,确保保留表格中的全部数据。
如果你想自己控制布局或潜在信息添加到详情行,可以通过 responsive.details.renderer
选项来定义一个自定义渲染工具。
上面讨论的显示方法将使用渲染工具返回的数据,允许渲染后的信息完全独立于显示方式(即,它将适用于子行和模态)。
用户交互控件
自适应有三个用于显示允许终端用户访问详情行的控件的选项,它们通过 responsive.details.type
选项设置
- 禁用 (
false
) - 无能力显示详情行 - 内联 (
inline
- 默认) - 如果有隐藏的列,则将在表格的第一列中显示控件 - 基于列 (
column
) - 将在指定列中显示控件,该列仅用于显示详情行访问控件。
当你想在不更改其结构的情况下将自适应添加到现有表格时,inline
类型非常有用。当你不希望第一列的布局因在第一列中显示控件图标而改变(如 inline
)时,column
类型非常有用。