详细信息视图

在窄屏幕上,当响应式从显示中移除列时,隐藏列中的数据可能仍然对最终用户有用且相关。为此,响应式具有以多种方式显示行中信息的能力,包括使用 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 类型非常有用。