Sto provando a creare una griglia di kendo con esportazione excel. I miei dati sono mostrati esattamente come lo voglio e la griglia funziona bene. Tuttavia, la funzione saveAsExcel attiva l'evento excelExport, ma non viene creato alcun file. Lo stesso problema con l'esportazione pdf. Ecco le mie opzioni della griglia:Griglia UI Kendo esportazione esportazione excel e pdf, nessun file creato
grid = $("#grid").kendoGrid({
toolbar:["excel","pdf"],
height: 500,
scrollable: true,
groupable: true,
sortable: true,
filterable: false,
excel: {
allPages:true,
filterable:true
},
excelExport: function(e) {
console.log('Firing Export');
console.log(e.workbook);
console.log(e.data);
},
pdfExport: function(e){
console.log('PDF export');
},
columns: [
{ field: "date", title: "Time", template: "#= kendo.toString(kendo.parseDate(date), 'MM/dd/yyyy') #", width: '120px'},
{ field: "customer", title: "Customer" },
{ field: "amount", title: "Total", format: "{0:c}", width: '70px', aggregates: ["sum"]},
{ field: "paid_with", title: "Payment", width: '130px'},
{ field: "source", title: "Source" },
{ field: "sale_location", title: "Sale Location" }
]
}).data("kendoGrid");
Questa Ajax è chiamato ogni volta che i parametri di ricerca per i dati vengono modificati. Dove aggiorno l'origine dati.
$.ajax({
'url':'/POS/ajax/loadTransactionsDetailsForDay.php',
'data':{
filters
},
'type':'GET',
'dataType':'json',
'success':function(response) {
var dataSource = new kendo.data.DataSource({
data: response.data.invoices,
pageSize: 100000,
schema: {
model: {
fields: {
date: {type: "string"},
customer: { type: "string" },
amount: { type: "number" },
paid_with: {type: "string"},
source: {type:"string"},
sale_location: {type:"string" }
}
}
}
});
grid.setDataSource(dataSource);
grid.refresh();
}
});
L'output dal log della mia console è.
Firing Export.
Un oggetto del foglio di lavoro.
Object {sheets: Array[1]}sheets: Array[1]0: Objectlength: 1__proto__: Array[0]__proto__: Object
e matrice e con questi oggetti per ogni riga della griglia:
0: o
_events: Object
_handlers: Object
amount: 40.45
customer: "customer 1"
date: "2015-11-25T00:00:00-08:00"
dirty: false
employee: 23
paid_with: "Check"
parent:()
sale_location: "Main"
source: "POS"
uid: "70b2ba9c-15f7-4ac3-bea5-f1f2e3c800d3"
Ho l'ultima versione di kendo, sto caricando jszip. Lo sto eseguendo sull'ultima versione di Chrome. Ho provato tutti i tipi di variazioni di questo codice che mi viene in mente, inclusa la rimozione del mio schema, inizializzando nuovamente il kendo ogni volta nel callback.
Qualcuno ha idea del perché questo non avrebbe funzionato?
Ogni esempio su questo posso trovare renderlo super semplice, basta creare la griglia e chiamare l'esportazione ... Quindi devo trascurare qualcosa.
Sono grato per qualsiasi idea al riguardo.
Grazie.
La tua implementazione sembra ok. Sei sicuro che jszip sia caricato prima del kendo? –
Ho copiato il tuo javascript e funziona perfettamente (con un file vuoto). Questo potrebbe essere un problema con le autorizzazioni? I miei file sono scritti nella mia cartella dei download. – Fruitbat
@The_Black_Smurf Sì, è già stato caricato. Avevo un limite di tempo quindi ho finito per scrivere un'esportazione CSV della griglia. Ma torneremo su questo e proveremo a scoprire cosa lo ha causato. – Svennisen