【问题标题】:Best practices of exporting records from HTML table从 HTML 表中导出记录的最佳实践
【发布时间】:2015-06-05 09:06:24
【问题描述】:

我使用tablesorter 作为视图。我有一个记录表,有 3 种导出场景:

  1. 从所有页面全部导出
  2. 仅通过复选框选择导出
  3. 仅导出过滤记录

我对如何实现这些场景有点困惑... 以下是我的假设和疑问:

  1. 全部导出 - 只需使用 $('#table tr')。是的,它真的会全部导出
  2. 仅选择导出 - 再次使用 $('#table tr') 并为每个项目检查复选框是否已启用
  3. 过滤的记录。我很困惑。我可以使用$('#table tr:visible'),但如果我有 12 条过滤记录,但页面上只有 10 条记录,另外 2 条记录在另一个页面上怎么办?

对于这 3 种情况,是否有一些关于如何确定应导出哪些记录(到 csv/xls)的最佳实践?

【问题讨论】:

  • 你肯定在所有情况下都会遇到分页问题吗?数据是纯 HTML 还是 API 调用,带有 JSON / XML 数据?
  • HTML 中的所有数据。为导出进行 API 调用是另一个问题,我现在不想这样做。
  • 你确实有一个 API - mottie.github.io/tablesorter/docs/index.html#api - 你应该使用它来获取数据
  • 你不应该使用 jQuery 来完成这个任务 - 查看 tablesorter API。
  • 数据是用户提供还是后端提供?

标签: javascript jquery html tablesorter


【解决方案1】:

output widget 有一个 output_savedRows option,它具有以下设置:

  • "filtered" 输出匹配过滤查询的行。它通过使用以下选择器来做到这一点:

    $('tr').not('.filtered')
    

    filter_filteredRow option添加的类

  • "visible" 仅输出可见行。被寻呼机、过滤器隐藏或设置为display: none 的行不会包含在输出中。在这种情况下使用可见选择器:

    $('tr:visible')
    
  • "all" 将输出所有行。这包括隐藏和过滤的行。

    $('tr')
    

  • 我计划在 v2.22.2 中添加一个新设置 "selected",它将使用一个新选项 output_selected,其中包含输出小部件用于包含在输出中的行类名称。

    $('tr.selected')
    

【讨论】:

  • 谢谢!这是我自己想出来的,你的回答正好印证了我的想法)
  • 我实际上最终没有添加“选定”作为设置。取而代之的是 output_saveRows 选项现在将接受 jQuery 选择器 - 请参阅 this comment 了解更多详细信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 2012-01-10
  • 1970-01-01
相关资源
最近更新 更多