2
我在我的應用程序中有劍道網格和導出按鈕。導出網格數據工作正常,但這裏有一些行重複,它們顯示在文件的末尾。我給出了導出文件的自定義名稱。任何人都可以告訴我我的代碼有什麼問題。請? 這裏是出口按鈕,單擊代碼在我的(劍道網格)導出的數據文件中的重複字段
$("#btnExport").click(function(e) {
var dataSource= $("#grid").data("kendoGrid").dataSource;
var filteredDataSource = new kendo.data.DataSource({
data: dataSource.data(),
filter: dataSource.filter()
});
filteredDataSource.read();
var data = filteredDataSource.view();
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>";
var dt = new Date();
var day = dt.getDate();
var month = dt.getMonth() + 1;
var year = dt.getFullYear();
var hour = dt.getHours();
var mins = dt.getMinutes();
var postfix = day + "." + month + "." + year + " " + hour + ":" + mins;
var a = document.createElement('a');
var table_div = (document.getElementById('grid').getElementsByTagName('tbody')[0]);
var table_html = table_div.outerHTML.replace();
a.href = result + ',' + table_html;
a.download = '[email protected]' +postfix+ '.xls';
a.click();
e.preventDefault();
});
這裏是小提琴http://jsfiddle.net/SZBrt/35/
我已經試過你的代碼在小提琴上,但它沒有爲我導出任何文件。然後我嘗試了我的本地系統,它在addign $後工作的(a).appendTo( '主體');但是我收到的excel文件沒有任何重複的行,但它包含了一些不可讀的行。是你的問題嗎? – Gerry 2013-03-26 05:50:04
亞正是這是我的問題 – user2049357 2013-03-26 06:05:39
a.href = result +','+ table_html;但是,當我從a.href中刪除table_html時,這已經解決了。試試這個:「** a.href = result; **」而不是** a.href = result +','+ table_html; ** – Gerry 2013-03-26 06:28:50