Jquery-DataTables [tableTools]: экспорт только видимых строк
Я только начал использовать jQuery DataTables.
используя tableTools DataTables, можно ли экспортировать только видимые строки вместо всех строк? Если, например, разбиение на страницы было установлено на 10, я ожидал бы, что будет экспортировано только 10 строк. То же самое касается результата поиска.
вот часть кода:
$(document).ready(function() {
var table = $('#example').DataTable({
"pagingType": "full_numbers",
"iDisplayLength" : 10,
dom: 'T<"clear">lfrtip',
"oTableTools": {
"aButtons": [
{ "sExtends": "copy", "mColumns": "visible", "bSelectedOnly": true },
{ "sExtends": "xls", "mColumns": "visible" },
{ "sExtends": "print", "mColumns": "visible" }
], "sRowSelect": "multi"},
"order": [[ 0, "asc" ]]
} ) ;...
спасибо.
4 ответов
вы можете добиться этого, выбрав все видимые строки перед сохранением, а затем отменить их выбор после завершения сохранения.
$(document).ready(function() {
$('#example').DataTable( {
dom: 'T<"clear">lfrtip',
"oTableTools": {
"sRowSelect": "multi",
"aButtons": [
{
"sExtends": "csv",
"bSelectedOnly": true,
"fnComplete": function ( nButton, oConfig, oFlash, sFlash ) {
var oTT = TableTools.fnGetInstance( 'example' );
var nRow = $('#example tbody tr');
oTT.fnDeselect(nRow);
}
}
]
}
} );
$('a.DTTT_button_csv').mousedown(function(){
var oTT = TableTools.fnGetInstance( 'example' );
var nRow = $('#example tbody tr');
oTT.fnSelect(nRow);
});
} );
я использовал это решение, и это сработало. Попробуйте это:
<script>
$(document).ready(function() {
var table = $('#example').DataTable( {
"pagingType": "full_numbers",
"iDisplayLength": 10,
"dom": 'T<"clear">lfrtip',
"oTableTools": {
"aButtons": [
{'sExtends':'copy',
"oSelectorOpts": { filter: 'applied', order: 'current' },
},
{'sExtends':'xls',
"oSelectorOpts": { filter: 'applied', order: 'current' },
},
{'sExtends':'print',
"oSelectorOpts": { filter: 'applied', order: 'current' },
}
]
},
});
});
</script>
вы можете установить выбор страницы на текущую страницу для конкретного экспорта.
Ref:http://datatables.net/docs/DataTables/1.9.4/#$
{ "sExtends": "xls", "mColumns": "visible", "oSelectorOpts": { page: "current" } }
Если вы используете flash для экспорта, необходимо упомянуть swf-путь для работы.
$("#example").dataTable( {
"sDom": 'T<"clear">lfrtip',
"oTableTools": {
"sSwfPath": "Path to your copy_csv_xls_pdf.swf files comes with TableTools",
"aButtons": [
{
"sExtends": "copy",
"sButtonText": "Copy to clipboard",
"oSelectorOpts": { filter: "applied", order: "current" }
},
{
"sExtends": "csv",
"sButtonText": "Export to CSV",
"oSelectorOpts": { filter: "applied", order: "current" }
},
{
"sExtends": "print",
"sButtonText": "Print",
"oSelectorOpts": { filter: "applied", order: "current" }
}
]
}
} );
есть несколько дополнительных опций, также доступных для объекта aButtons.
"mColumns": [1, 2,...] - List of columns to include in export result
"sTitle": "filename" - desire filename for export file
------------------обновление---------------------------
в более новой версии datatable-datatableTools удаляется
пожалуйста, используйте кнопки расширение
buttons: [
{
extend: 'copyHtml5',
exportOptions: {
columns: [ 0, ':visible' ]
}
},
{
extend: 'excelHtml5',
exportOptions: {
columns: ':visible'
}
},
{
extend: 'pdfHtml5',
exportOptions: {
columns: [ 0, 1, 2, 5 ]
}
},
]