【问题标题】:How to swap datatables columns如何交换数据表列
【发布时间】:2016-12-18 04:57:36
【问题描述】:

所以我从 API 获取数据。该数据有 13 个不同的列,但在我的数据表上,我一次只想显示 4 个。为了从用户体验的角度提出一个干净的解决方案,我构建了一个下拉列表,用户可以在其中选择 13 列之一来切换数据。不幸的是,我无论如何都看不到这样做,所以请帮忙。

这是我迄今为止尝试过的:

  • 将所有不可见的列设置为visible:false,并使其在被调用时可见。然后将正在切换的列设为不可见
  • colReorder
  • 清空表,使用jquery将dom头修改为正确的标题,然后用该列重新初始化表。这不起作用,因为数据的顺序必须与用户交换列之前的顺序相同

【问题讨论】:

  • DataTables 有一个 columns 键,您可以在其中使用 json 检索数据,因此 { "data" : "col1" 将检索键为 col1 的数据。更多信息请访问datatables.net/reference/option/columns.data
  • 如何构建一个可供 jQuery 使用的不同对象。通过这种方式,您可以控制数据的显示内容和方式。
  • @A.Lau 我怎么把它放在新的专栏里?
  • @jeff 所以停止使用数据表?
  • 最简单的方法是拥有destroy: true,这样您就可以根据需要重新创建。见datatables.net/reference/option/destroy

标签: javascript jquery datatables datatables-1.10


【解决方案1】:

您可以使用 jQuery 函数 .hide 和 .show 来做到这一点。我这样做的方法是在该列中找到标题标题的索引。例如:

(table).find('th').index($(table.find('th:contains(' + select + ')')))

其中 select 是活动或非活动列的标题。

然后用:

table.DataTable().column(j).visible(false);

您可以隐藏该列(visisble(true) 以显示该列)。其中 j 是索引 + 1,用于说明控制列。这在 html 中有点骇人听闻,但它确实有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多