重新加载后数据表按钮消失

时间:2017-04-26 11:51:37

标签: jquery excel datatables datatable-buttons

我试图将Excel,PDF和打印按钮添加到我的数据表结果中, 好吧,我做完了,但是,当我重新加载数据表的内容excel和打印按钮消失,

这就是我将信息发送到数据表的方式

$.ajax({
                    type: 'POST',
                    url: 'Inicio.aspx/ContactsList',
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (data) {
                        FillDataTable(data, 'Listado de Todos');

                    }
                });

这是我的数据表的Methot

 function FillDataTable(data, reporte) {
                $('#GridActivos').dataTable({
                    dom: 'Bfrtip',
                     destroy: true,
                    buttons: [
                        {
                            extend: 'excel',
                            customize: function (xlsx) {
                                var sheet = xlsx.xl.worksheets['sheet1.xml'];
                                $('row c[r*="10"]', sheet).attr('s', '25');
                            },
                            title: reporte
                        },
                        {
                            extend: 'pdf',
                            title: reporte
                        },
                        {
                            extend: 'print',
                            customize: function (win) {
                                $(win.document.body)
                                    .css('font-size', '10pt')
                                    .prepend(
                                        '<img src="http://datatables.net/media/images/logo-fade.png" style="position:absolute; top:0; left:0;" />'
                                    );

                                $(win.document.body).find('table')
                                    .addClass('compact')
                                    .css('font-size', 'inherit');
                            },
                            title: reporte
                        },


                    ],
                    select: {
                        style: 'single'
                    },
                    bProcessing: true,
                    "aaData": JSON.parse(data.d),
                    "aoColumns": [
                        { "mDataProp": "ID" },
                        { "mDataProp": "NOMBRES" },
                         { "mDataProp": "Sexo" },
                          { "mDataProp": "Edad" },
                           { "mDataProp": "Puntuacion" },
                            { "mDataProp": "NivelEconomico" },
                             { "mDataProp": "Hacinamiento" },
                                 { "mDataProp": "RelM" },
                                  { "mDataProp": "RelP" },
                             { "mDataProp": "RelT" }

                    ]
                });
            }

这是第一次按下搜索按钮时的图像 Imagen1

这是我再次按下的时候 Imagen2

1 个答案:

答案 0 :(得分:1)

这是DataTables的人正在处理的错误,同时我以这种方式解决它,如果有人知道这样做的方式,请告诉我

  var buttons = [];

  $.each($('#GridActivos').DataTable().buttons()[0].inst.s.buttons,
      function () {
      buttons.push(this);
       });
  $.each(buttons,
      function () {
      $('#GridActivos').DataTable().buttons()[0].inst.remove(this.node);
      });