{hero}

选择器修饰符

选择器如何对行、列和单元格执行操作的选项。

说明

当通过 rows()columns()cells()(及其单数对应项)使用选择器进行操作时,您需要了解并能够控制 DataTables 对行进行处理时的基本方面,比如处理顺序以及选择器应作用于哪组行。这个 selector-modifier 类型可提供这些功能,还可以在使用选择器的任何函数中进行选择性使用。

服务器端处理

服务器端处理的特别说明:在服务器端处理模式下使用 DataTables(serverSide)时,selector-modifier 对选定的行影响极小,因为所有处理(排序、搜索等)都在服务器上执行。因此,在客户端上存在的行只有表中某一时刻显示的行,选择器只能选择当前页上的那些行。

选项

从根本上说,selector-modifier 是一个包含三个内置属性的对象,可以使用这些属性,还可以通过 Select 等扩展进行扩展。这些属性(包括其默认值)是

{
    // DataTables core
    order:  'current',  // 'current', 'applied', 'index', 'original', number
    page:   'all',      // 'all',     'current'
    search: 'none',     // 'none',    'applied', 'removed'

    // Extension - KeyTable (v2.1+) - cells only
    focused: undefined, // true, false, undefined

    // Extension - Select (v1.0+)
    selected: undefined // true, false, undefined
}

内置选项

order

order 修饰符提供了控制行处理顺序的功能。这可能会对链式函数的返回产生影响 - 例如,column().data() 可以按照当前表格显示数据的顺序或原始数据顺序来返回列中的数据。

  • current(默认值) - 按照当前应用于表格的顺序处理行。
  • index - 按照其数据索引顺序处理行(原始将数据读取到表格中的顺序)。
  • applied - current 的别名。
  • original - index 的别名,出于向后兼容性的考虑。
  • number - 应将其排序应用于数据的列索引(自 2.0 起)。请注意,此选项不适用于 page: 'current' 选项。
按照应用的顺序从某一列获取数据

注意,由于selector-modifier是可选的,并且applied是列的默认值,因此以下示例与以下内容相同:table.column( 3 ).data(); - 它只是显式地设置了order参数。

var table = new DataTable('#myTable');
table.column( 3, {order:'current'} ).data();
按数据索引顺序获取一列中的数据
var table = new DataTable('#myTable');
table.column( 3, {order:'index'} ).data();

```

按数据表格排序顺序获取一列中的数据
var table = new DataTable('#myTable');
table.column( 3, {order:3} ).data();

页面

page修改器允许你控制选择器应考虑表格中的所有数据(无论分页情况如何)还是仅使用当前显示页面中的行。

  • all(默认) - 使用所有页面中的行
  • current - 仅使用当前显示页面中的行。

重要:将page设置为current会隐式地设置order=currentsearch=applied。否则,current选项没有意义!无法通过显式设置来覆盖这些隐式ordersearch值。

仅获取当前页面上行的 数据
var table = new DataTable('#myTable');
table.rows( {page:'current'} ).data();

搜索

search修改器提供控制使用应用于表格的搜索选项选择器使用的行的方法。

  • none(默认) - 不考虑搜索(即使用所有行)
  • applied - 仅使用与应用于表格的当前搜索匹配的行
  • removed - 仅使用因应用搜索而从表格中删除的行。

请注意,为了向后兼容,还可以将search项作为属性filter提供。如果同时提供两者,则优先使用search项。

获取按索引顺序与应用于表格的搜索项匹配的行 的tr元素
var table = new DataTable('#myTable');
table.rows( {order:'index', search:'applied'} ).nodes();
获取已从搜索中删除的行
var table = new DataTable('#myTable');
table.rows( {search:'removed'} ).nodes();

扩展

以下选项描述了可以通过使用其扩展添加到数据表格内核的行为。这些扩展与数据表格 API 紧密集成,并且这些选项可以使用扩展来感觉数据表格的自然组成部分。

聚焦(仅限单元格)

KeyTable提供聚焦于数据表格中特定单元格的能力,因此通常要知道哪个单元格已聚焦,同样要知道哪些单元格未聚焦。

请注意,此选项仅可与cells()cell()方法一起使用。对行或列选择器使用它没有任何作用。

此选项采用一个布尔值,尽管它也可以是undefined,默认即为undefined

  • undefined(默认) - 不执行选择修改
  • true - 仅选择聚焦单元格
  • false - 仅选择 没有 聚焦的单元格。
获取聚焦单元格的数据
var table = new DataTable('#myTable');
table.cell( {focused:true} ).data();

已选择

用于DataTables的Select扩展程序提供了在表中选择项目(行、列和单元格)的功能,因此能够检索用户已选择的项目以对其执行某些操作非常重要。

此选项采用一个布尔值,尽管它也可以是undefined,默认即为undefined

  • undefined(默认) - 不执行选择修改
  • true - 仅检索已选择的项目
  • false - 仅检索选择的项目。
获取所选行的
var table = new DataTable('#myTable');
table.rows( {selected:true} ).data();

可在选定手册中找到有关此属性的其他信息。