Eu quero exportar os dados da grade de kendo para o excel embotão clique.Eu tentei isso, ele está trabalhando, mas ele exporta apenas uma página de dados e rodapé também exportados.Mas eu quero exportar dados totais da grade sem rodapé.
meu código é
$("#btnExport").click(function(e) {
window.open("data:application/vnd.ms-excel," + document.getElementById("grid").outerHTML.replace(/ /g, "%20"));
e.preventDefault();
});
Respostas:
1 para resposta № 1Seu código está exportando o outerHTML
da grade. Isto, obviamente, inclui todo o HTML (cabeçalho, rodapé, dados, etc.). Como você tem a paginação ativada, a grade HTML incluirá apenas a página atual de dados.
Além disso, depois de verificar o seu violino, parece que vocêestão usando o serverPaging, o que significa que você não tem todos os dados para começar. Você precisa desativar o serverPaging se quiser ter todos os dados. Em seguida, crie o HTML da grade percorrendo o resultado do dados() método da fonte de dados.
$("#btnExport").click(function(e) {
var data = $("#grid").data("kendoGrid").dataSource.data();
var result = "data:application/vnd.ms-excel,";
result += "<table><tr><th>OrderID</th><th>Freight</th><th>Order Date</th><th>Ship Name</th><th>Ship City</th></tr>";
for (var i = 0; i < data.length; i++) {
result += "<tr>";
result += "<td>";
result += data[i].OrderID;
result += "</td>";
result += "<td>";
result += data[i].Freight;
result += "</td>";
result += "<td>";
result += kendo.format("{0:MM/dd/yyyy}", data[i].OrderDate);
result += "</td>";
result += "<td>";
result += data[i].ShipName;
result += "</td>";
result += "<td>";
result += data[i].ShipCity;
result += "</td>";
result += "</tr>";
}
result += "</table>";
window.open(result);
e.preventDefault();
});
Aqui está o jsfiddle atualizado: http://jsfiddle.net/SZBrt/4/