jquery - DataTables 中导出 CSV 的自定义值 (jQuery)

标签 jquery datatables render

我使用自定义函数在 DataTable 列中呈现 HTML 图标,而不是显示纯文本:

    {data: {newCost : "newCost", oldCost:"oldCost"},
            title: "Difference",
            render:  {"display":function(data) {

                    if (parseFloat(data.newCost) > parseFloat(data.oldCost)) {
                        return '<i class="fas fa-arrow-up icon-red" data-sort="1" style="margin-left: 4px"></i>'
                    }
                    if (parseFloat(data.newCost) === parseFloat(data.oldCost)) {
                        return '<i class="fas fa-equals" data-sort="0" style="margin-left: 4px"></i>'
                    } else {
                        return '<i class="fas fa-arrow-down icon-green" data-sort="-1" style="margin-left: 4px"></i>'
                    }
                }, "sort": function(data){
                    return data.newCost - data.oldCost;
                }, "_":function(data){
                    return data.newCost - data.oldCost;
                }
            }
        },

enter image description here

如您所见,鉴于 oldCostnewCost 两个值之间的差异,我使用 render 函数来显示箭头。但是当我使用导出按钮插件导出它时,该列显示一个空白区域。我想显示差异的纯文本值。

这可能吗?

最佳答案

您可以将差异存储为属性:

render: {"display":function(data) {
  var difference = data.newCost - data.oldCost;
  if (parseFloat(data.newCost) > parseFloat(data.oldCost)) {
      return '<i data-value="'+difference+'" class="fas fa-arrow-up icon-red" data-sort="1" style="margin-left: 4px"></i>'
  }
  ...

在导出选项中返回该属性值:

{
  extend: 'csvHtml5',
  exportOptions: {
    format: {
      body: function(data, row, column, node) {
        if (column == 42) { //dont know the index
          return $(data).attr('data-value')
        }
      }
    }    
  }    
}

澄清一下:出现空格是因为 <i> 的文本值元素是''

关于jquery - DataTables 中导出 CSV 的自定义值 (jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52669303/

相关文章:

javascript - 如何在 html 中使用 jQuery 来正确显示下拉菜单

javascript - jQuery 获取 <div> 标签之间的内容

javascript - JQuery 单击跨度中的文本?

jquery - 自定义数据表按钮的外观

drupal - 仅打印 drupal field_view_field 值

javascript - 分割数组给我的不是一个函数

r - 有没有办法使用 Shiny 更新的 DT::renderDataTable 和 DT::dataTableOutput 按列搜索?

javascript - DataTables row.add() 不适用于 serverSide 选项

zend-framework - ZF 渲染一个 Action 并在另一个 Action 中获取 html

javascript - 防止重新渲染 react 对象数组