Kendo ui 单击excel按钮多次下载剑道网格excel文件
我试图在导出到excel时显示隐藏列。我正在使用下面的函数来实现功能。问题是它正在下载多个excel文件,因为它多次调用“Insurance/GetInsuranceDisferences”的触发调用…如果我删除自定义代码以导出隐藏列,则只需下载一次excel即可。让我知道我做错了什么Kendo ui 单击excel按钮多次下载剑道网格excel文件,kendo-ui,grid,Kendo Ui,Grid,我试图在导出到excel时显示隐藏列。我正在使用下面的函数来实现功能。问题是它正在下载多个excel文件,因为它多次调用“Insurance/GetInsuranceDisferences”的触发调用…如果我删除自定义代码以导出隐藏列,则只需下载一次excel即可。让我知道我做错了什么 excelExport: function (e) { if (exportFlag) { e.sender.showC
excelExport: function (e) {
if (exportFlag) {
e.sender.showColumn("INS_TYPE");
e.sender.showColumn("ErollementYear");
e.preventDefault();
exportFlag = true;
setTimeout(function () {
e.sender.saveAsExcel();
});
} else {
e.sender.hideColumn(0);
exportFlag = false;
}
}
Here is complete code for binding
var baseUrl = $('base').attr('href');
var gridReadUrl = baseUrl + 'Insurance/GetInsuranceDisputes';
var exportFlag = true;
$(document).ready(function () {
InsuranceGrid.Initialize('#ActiveGrid');
var grid = $("#ActiveGrid").data("kendoGrid");
});
var InsuranceGrid = function () {
var initialize = function () {
var grid = $("#ActiveGrid"); //$('div', container);
var filterOption = {
extra: false,
operators: {
string: {
eq: "Is Equal To",
startswith: "Starts With",
contains: "Contains",
endswith: "Ends With"
}
}
};
var columnOptions = [
{
field: "INS_NO",
title: "INS#",
width: 100,
filterable: true,
editable: false,
locked: true
},
{
field: "INS_TYPE",
title: "Insurance Type",
width: 250,
filterable: false,
hidden: true
},
{
field: "ErollementYear",
title: "EnrollmentYear",
width: 200,
filterable: false,
editable: false,
hidden: true
},
];
var gridOptions = {
toolbar: ["excel"],
excel: {
fileName: "InsuranceList.xlsx",
allPages: true,
filterable: true
},
dataSource: {
error: function (e) {
if (e.errors != false) {
alert("Error:" + e.errors);
grid.one("dataBinding", function (e) {
e.preventDefault(); // cancel grid rebind
});
}
},
transport: {
read: {
url: gridReadUrl,
type: "POST",
complete: function (jqXHR, textStatus) {
//alert('ere');
},
data: function () {
return {};
}
},
},
schema: {
data: "data",
total: "total",
model: {
id: "ID",
fields: {
ID: {
editable: false,
type: "number"
},
INS_NO: {
editable: false,
type: "string"
},
INS_TYPE: {
editable: true,
type: "string"
},
ErollementYear: {
editable: true,
type: "string"
},
}
}
},
serverPaging: true,
serverSorting: true,
serverFiltering: true
}
, dataBound: dataBoundGrid
, columns: columnOptions,
height: 650,
sortable: {
mode: "single",
allowUnsort: false
},
filterable: true,
selectable: true,
change: onChange,
pageable: {
pageSize: 20,
refresh: true,
messages: {
refresh: "Refresh the grid"
}
},
excelExport: function (e) {
if (exportFlag) {
debugger;
e.sender.showColumn("INS_TYPE");
e.sender.showColumn("ErollementYear");
e.preventDefault();
exportFlag = true;
setTimeout(function () {
e.sender.saveAsExcel();
});
} else {
e.sender.hideColumn(0);
exportFlag = false;
}
}
};
var onClose = function () {
};
grid.kendoGrid(gridOptions).delegate("tbody>tr", "dblclick", function (e) { GotoDetailView(e) });
};
var dataBoundGrid = function () {
var grid = new $("#ActiveGrid").data("kendoGrid");
var data = grid.dataSource.data();
$.each(data, function (i, row) {
var INSType = row.INS_TYPE;
if (INSType == "CLOSED") {
$('tr[data-uid="' + row.uid + '"] ').css("background-color", "#990000"); //red
}
else {
$('tr[data-uid="' + row.uid + '"] ').css("background-color", "#ff5c33"); //orange
}
});
};
var refresh = function () {
var grid = $('#ActiveGrid');
if (grid.length < 1) {
return;
}
grid.data("kendoGrid").dataSource.read();
};
return {
Initialize: initialize,
Refresh: refresh,
};
}();
function GotoDetailView(e) {
var grid = $("#ActiveGrid").data("kendoGrid");
window.location = baseUrl + "Details/Index?ID=" + ID;
}
function onChange(e) {
var model = this.dataItem(this.select());
ID = model.ID;
}
excelExport:函数(e){
if(exportFlag){
e、 sender.showColumn(“INS_类型”);
e、 寄件人。展示栏(“收款年度”);
e、 预防默认值();
exportFlag=true;
setTimeout(函数(){
e、 sender.saveAsExcel();
});
}否则{
e、 发送方。hideColumn(0);
exportFlag=false;
}
}
下面是绑定的完整代码
var baseUrl=$('base').attr('href');
var gridReadUrl=baseUrl+“保险/获取保险争议”;
var exportFlag=true;
$(文档).ready(函数(){
InsuranceGrid.Initialize(“#ActiveGrid”);
var grid=$(“#ActiveGrid”).data(“kendoGrid”);
});
var InsuranceGrid=函数(){
变量初始化=函数(){
var grid=$(“#ActiveGrid”);/$('div',container);
变量筛选选项={
额外:错,
操作员:{
字符串:{
情商:“等于”,
startswith:“以开始”,
包含:“包含”,
endswith:“以结束”
}
}
};
变量列选项=[
{
字段:“INS_NO”,
标题:“INS#”,
宽度:100,
可过滤:正确,
可编辑:false,
锁定:对
},
{
字段:“INS_类型”,
标题:“保险类型”,
宽度:250,
可过滤:false,
隐藏:真的
},
{
字段:“ErollementYear”,
标题:“注册年份”,
宽度:200,
可过滤:false,
可编辑:false,
隐藏:真的
},
];
变量gridOptions={
工具栏:[“excel”],
卓越:{
文件名:“InsuranceList.xlsx”,
是的,
可过滤:真
},
数据源:{
错误:函数(e){
如果(例如错误!=错误){
警报(“错误:+e.错误”);
网格1(“数据绑定”,函数(e){
e、 preventDefault();//取消网格重新绑定
});
}
},
运输:{
阅读:{
url:gridReadUrl,
类型:“POST”,
完成:函数(jqXHR,textStatus){
//警报(“ere”);
},
数据:函数(){
返回{};
}
},
},
模式:{
数据:“数据”,
总计:“总计”,
型号:{
id:“id”,
字段:{
身份证:{
可编辑:false,
类型:“编号”
},
INSU编号:{
可编辑:false,
类型:“字符串”
},
INS_类型:{
是的,
类型:“字符串”
},
学年:{
是的,
类型:“字符串”
},
}
}
},
对,,
对,,
服务器筛选:true
}
,dataBound:dataBoundGrid
,列:列选项,
身高:650,
可排序:{
模式:“单身”,
allowUnsort:错误
},
可过滤:正确,
是的,
改变:一旦改变,
可分页:{
页面大小:20,
刷新:是的,
信息:{
刷新:“刷新网格”
}
},
Excel导出:函数(e){
if(exportFlag){
调试器;
e、 sender.showColumn(“INS_类型”);
e、 寄件人。展示栏(“收款年度”);
e、 预防默认值();
exportFlag=true;
setTimeout(函数(){
e、 sender.saveAsExcel();
});
}否则{
e、 发送方。hideColumn(0);
exportFlag=false;
}
}
};
var onClose=函数(){
};
委托(“tbody>tr”,“dblclick”,函数(e){GotoDetailView(e)});
};
var-dataBoundGrid=函数(){
var grid=new$(“#ActiveGrid”).data(“kendoGrid”);
var data=grid.dataSource.data();
$。每个(数据、函数(i、行){
var INSType=row.INS\u TYPE;
如果(