当前位置:  开发笔记 > 前端 > 正文

使用select元素从datatable导出数据会从select元素导出每个选项

如何解决《使用select元素从datatable导出数据会从select元素导出每个选项》经验,为你挑选了1个好方法。

我尝试将导出按钮添加到我的数据表中,我的表中包含选择框,问题是 - 它导出选择框中包含的所有选项值...我使用ajax从服务器获取结果然后操纵不同的数据在使用如下dataSrc函数渲染之前:

dataTableInit: function (columns_def) {
    var me = this;
    me.dataTable_obj = $('#leads_table').DataTable({
       "pageLength": per_page,
        dom: 'Blfrtip',
        buttons: [
            'copy', 'csv', 'excel', 'pdf', 'print'
        ],
        "order": [order],
        "ajax": {
            url: route,
            type: method,
            data: filtering_data,
            "dataSrc": function (json) {
                return me.setLeadsTableData(json);
            }
        },
       "columns": columns_def,
       ....

setLeadsTableData我检查从服务器返回的列然后如果它是一个应该是一个选择框的列我正在改变它模板,如下所示:

 setStatusesSelectBox: function (status_obj, lead_id) {
    var me = this;
    var statuses_list = '';
    var bg_color = status_obj.name == "new" ? me.new_status_row_bg_color : '';
    $.each(me.client_statuses, function (key, val) {
        if (val.id != status_obj.id) {
            if (typeof val.is_won !== "undefined" && val.is_won != 0) {
                statuses_list += "";
            } else if (typeof val.is_lost !== "undefined" && val.is_lost != 0) {
                statuses_list += "";
            } else {
                statuses_list += "";
            }
        } else {
            if (typeof val.row_bg_color !== 'undefined') {
                bg_color = val.row_bg_color;
            }
            if (typeof status_obj.is_won !== "undefined" && status_obj.is_won != 0) {
                statuses_list += "";
            } else if (typeof status_obj.is_lost !== "undefined" && status_obj.is_lost != 0) {
                statuses_list += "";
            } else {
                statuses_list += "";
            }
        }
    });
    statuses_list += "";
    var select_start = "框的当前选定值.这里是第一列和pdf:

buttons: [
  { 
    extend : 'pdf',
    exportOptions : {
      format: {
        body: function( data, row, col, node ) {
          if (col == 0) {
            return table
              .cell( {row: row, column: col} )
              .nodes()
              .to$()
              .find(':selected')
              .text()
           } else {
              return data;
           }
        }
      }
    },
    ...
  }
]

table在您的情况下,表实例在哪里me.dataTable_obj.现在只需更改,if (col == 0) {以便它响应您有

农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有