I am trying to add export buttons to my datatable, my table includes select flags inside, the problem is that it exports all the parameter values โโincluded in the select box ... I use ajax to get the results from the server, then manipulate different data before rendering using the dataSrc function as follows:
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, ....
in setLeadsTableData i checking the columns returned from the server, then if this is a column that should be a selection field, I change it like this:
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 += "<option data-icon='fa fa-thumbs-o-up' value='" + val.id + "'>" + val.name + "</option>"; } else if (typeof val.is_lost !== "undefined" && val.is_lost != 0) { statuses_list += "<option data-icon='fa fa-thumbs-o-down' value='" + val.id + "'>" + val.name + "</option>"; } else { statuses_list += "<option value='" + val.id + "'>" + val.name + "</option>"; } } 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 += "<option data-icon='fa fa-thumbs-o-up' value='" + val.id + "' selected>" + val.name + "</option>"; } else if (typeof status_obj.is_lost !== "undefined" && status_obj.is_lost != 0) { statuses_list += "<option data-icon='fa fa-thumbs-o-down' value='" + val.id + "' selected>" + val.name + "</option>"; } else { statuses_list += "<option value='" + val.id + "' selected>" + val.name + "</option>"; } } }); statuses_list += "</select>"; var select_start = "<select name='status' data-show-icon='true' data-row-bg='" + bg_color + "' class='form-control status-select' data-lead-id='" + lead_id + "'>"; ; return select_start + statuses_list; },
any answer will help, rate it
source share