如何交换数据表列
How to swap datatables columns
所以我从 API 获取数据。此数据有 13 个不同的列,但在我的数据 tables table 上我只想一次显示 4 个。为了从用户体验的角度提出一个干净的解决方案,我构建了一个下拉列表,用户可以在其中 select 13 列之一来切换数据。不幸的是我无论如何都看不到这样做所以请帮忙。
这是我目前尝试过的方法:
- 将所有不可见的列设置为
visible:false
并在需要时使它们可见。然后使正在切换的列不可见
colReorder
- 清除 table,使用 jquery 将 dom header 修改为正确的标题,然后使用该列重新初始化 table。这不起作用,因为数据的顺序必须与用户交换列之前的顺序相同
您可以使用 jQuery 函数 .hide 和 .show 来完成。我这样做的方法是在该列中找到 header 标题的索引。例如:
(table).find('th').index($(table.find('th:contains(' + select + ')')))
其中 select 是您的 header 活动或非活动栏的标题。
然后:
table.DataTable().column(j).visible(false);
您可以隐藏该列,(visisble(true) 以显示该列)。其中j是索引+1,占控制列。 html 有点乱,但它确实有效。
所以我从 API 获取数据。此数据有 13 个不同的列,但在我的数据 tables table 上我只想一次显示 4 个。为了从用户体验的角度提出一个干净的解决方案,我构建了一个下拉列表,用户可以在其中 select 13 列之一来切换数据。不幸的是我无论如何都看不到这样做所以请帮忙。
这是我目前尝试过的方法:
- 将所有不可见的列设置为
visible:false
并在需要时使它们可见。然后使正在切换的列不可见 colReorder
- 清除 table,使用 jquery 将 dom header 修改为正确的标题,然后使用该列重新初始化 table。这不起作用,因为数据的顺序必须与用户交换列之前的顺序相同
您可以使用 jQuery 函数 .hide 和 .show 来完成。我这样做的方法是在该列中找到 header 标题的索引。例如:
(table).find('th').index($(table.find('th:contains(' + select + ')')))
其中 select 是您的 header 活动或非活动栏的标题。
然后:
table.DataTable().column(j).visible(false);
您可以隐藏该列,(visisble(true) 以显示该列)。其中j是索引+1,占控制列。 html 有点乱,但它确实有效。