Экспорт скрыть столбец в сетку кендо Excel - PullRequest
0 голосов
/ 23 ноября 2018

У меня проблема.У меня есть сетка кендо, которая отлично работает.И экспорт Excel тоже.Но у меня есть какой-то столбец, который скрыт, и я хочу показать их в экспорте Excel.Итак, я нашел этот код в интернете, который работает специально для отображения моего скрытого столбца:

if (!exportFlag) {
          for(var i=0; i < columns.length; i++) {
              if(columns[i].hidden)
                  e.sender.showColumn(i);
          }
          e.preventDefault();
          exportFlag = true;
          setTimeout(function () {
            e.sender.saveAsExcel();
          });
        } else {
            for(var i=0; i < columns.length; i++) {
                  if(columns[i].hidden)
                      e.sender.hideColumn(i);
              }
          exportFlag = false;
        }

Но это решение не работает У меня есть эта ошибка: Ошибка типа: n [0] не определена

в этой строке: e.sender.hideColumn (k);

Это моя сетка:

 // Configuration des KendoGrids
    var sort = {
        field: 'nom',
        dir: 'asc'
    };

    var titleButtonAdd = "Ajouter un nouveau pef";

    var columns = [
        {field: "nom", title: "Nom PEF ", hidden: false,width: 200, headerAttributes: {style: "text-align: center; "}},
        {field: "codeug", title: "UG PEF ", hidden: false,width: 200, headerAttributes: {style: "text-align: center; "}},
        {field: "type", title: "Type ", hidden: false,width: 0,headerAttributes: { style: "text-align: center;display:none; " }, attributes: { style:"text-align: center; display:none;"} },
        {
            field: "responsable.libelle",
            title: "Responsable ",hidden: false,
            width: 200,
            headerAttributes: {style: "text-align: center; "},
            template: " #= (responsable === null) ? '' : responsable.libelle #"
        },
        {field: "ordresurartere", title: "Ordre/art ", hidden: false,width: 0,headerAttributes: { style: "text-align: center;display:none; " }, attributes: { style:"text-align: center; display:none;"} },
        {field: "codemire", title: "Code mire ", hidden: false,width: 0,headerAttributes: { style: "text-align: center;display:none; " }, attributes: { style:"text-align: center; display:none;"} },
        {field: "telephone", title: "tel ", hidden: false,width: 0,headerAttributes: { style: "text-align: center;display:none; " }, attributes: { style:"text-align: center; display:none;"} },
        {
            field: "paupef",
            title: "Permanent ",hidden: false,
            width: 40,
            headerAttributes: {style: "text-align: center; "},
            template: "<input type='checkbox' #= (true === paupef) ? checked='checked' : '' # disabled />"
        },
        {
            field: "mainteneurprincipal",
            title: "Mainteneur Principal ",
            width: 200,hidden: false,
            headerAttributes: {style: "text-align: center; "}
        },
        {field: "badge", title: "Badge ", hidden: false,width: 0, headerAttributes: { style: "text-align: center;display:none; " }, attributes: { style:"text-align: center; display:none;"} },
        {field: "cheminement", title: "Cheminement ", hidden: true },
        {
            title: "", width: 30,
            template: "<a href='#=url_edit#' title='Modifier' class='icon-1 info-tooltip'></a><a href='#=url_delete#' title='Supprimer' onClick='return window.confirm(\"Voulez-vous vraiment supprimer ce pef ?\") '  class='icon-2 info-tooltip'></a>",
        },
    ];
    var xlsFileName = "Alimentations.xlsx";
    var addRoute = "{{ path('referentiel_pef_add') }}";
var listData={{ listData|raw }};
var dataSource = new kendo.data.DataSource({
    data: listData,
    sort: sort
});
var $grid =  $("#grid");
var grid =$grid.data("kendoGrid");
if (typeof grid !== "undefined") {
    grid.destroy();
}
var toolbar ;
if (typeof titleButtonAdd !== "undefined") {
    toolbar = [{
        text:titleButtonAdd ,
        className: "k-grid-custom",
        imageClass: "k-icon k-add",
        iconClass: "k-icon k-i-add"
    }, "excel"];
}

if (typeof templateButtonAdd !== "undefined") {
    toolbar = [{
        className: "k-grid-custom",
        imageClass: "k-icon k-add",
        template: templateButtonAdd,
    }, "excel"];
}

$grid.kendoGrid({
    toolbar: toolbar,
    excel: {
        fileName: xlsFileName
    },
    columns:columns,
    dataSource: dataSource,
    height: 550,
    scrollable: true,
    sortable: true,
    excelExport: excelExport,
    dataBound: function () {
        DisplayNoResultsFound($('#grid'));
    },
});
dataSource.read();
$(".k-grid-custom").click(function () {
    location.href = addRoute;
});


var exportFlag = false;
function excelExport(e) {

    if (!exportFlag) {
        for(var i=0; i < columns.length; i++) {
            if(columns[i].hidden)
                e.sender.showColumn(i);
        }
        e.preventDefault();
        exportFlag = true;
        setTimeout(function () {
            e.sender.saveAsExcel();
        });
    } else {
        for (var k = 0; k < columns.length; k++) { console.log(k);
            if (columns[k].hidden)
                e.sender.hideColumn(k);
        }
        exportFlag = false;
    }


}

Кто-то может мне помочь, пожалуйста ??Или есть идея?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...