Обработка на стороне сервера Datatables попадает в базу данных при выборе параметра «Просмотр печати»

Обработка на стороне сервера Datatables попадает в базу данных при выборе параметра «Просмотр печати» с помощью инструментов для работы с таблицами.

if (gridcount != null && parseInt(gridcount) > 0) {
            _displayCount = parseInt(gridcount);
        }
 loaddatatable();  



function loaddatatable()
    {
_fromdate = $('#FromDateSelect').val();    
        _todate = $('#ToDateSelect').val();    
        $('#ddBankAccountYears').val($('#HBankAccountYear').val());   
        _Year = $('#ddBankAccountYears').val();    
        oTable = $('#List').dataTable({    
            "bStateSave": true,    
            "fnStateSave": function (oSettings, oData) {    
                $('#displayCount').val(oData.iLength);    
                $('#SortType').val(oData.aaSorting[0][1]);    
                $('#SortColumn').val(oData.aaSorting[0][0]);
            },
            "sDom": 'l<"floatR pL5"T><"floatR"f>rtip',
            "bDestroy": true,
            "aaSorting": [[_SortColumn, _sortType]],
            "iDisplayLength": _displayCount,
            "bServerSide": true,
            "sAjaxSource": "/ControllerName/AjaxHandler?id=" + _AccountId + "&id2=" + _Year + "&fromdate=" + encodeURIComponent(_fromdate) + "&todate=" + encodeURIComponent(_todate),
            "bProcessing": true,
            "aoColumns": []
  });
      }

вот пример кода, который мы используем, и именно проблема возникает, когда мы нажимаем на опцию просмотра «Печать» в Datatable с помощью инструментов таблицы. метод Ajax получает удар и получает значения. На самом деле он не должен попадать в метод, который он должен отображать или захватывать только данные и отображать.


person Magesh Tamilselvan    schedule 23.04.2015    source источник


Ответы (1)


Столкнулся с аналогичной проблемой, используя расширение TableTools 2.2.4 Чтобы избежать повторного нажатия на контроллер, я решил использовать "bShowAll": false опция.

Также я инициализирую TableTools с помощью используя $.fn.dataTable.TableTools.

JS-код:

$(document).ready(function () {

//server side processing
var table = $('#dataTable').DataTable({
    "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
    "bPaginate": true,
    "processing": true,
    "serverSide": true,
    "ajax": {
        "url": "/app/api/class/getData",
        "type": "POST",

        // additional params for the method (optiona)
        data: {
            startDate: startDate,
            endDate: endDate
        }
    },
    "columns": [
        {"data": "date"},
        {"data": "name"},
        {"data": "email"},
    ],
    "language": {
        "processing": "<i class=\"fa fa-spinner fa-spin\"></i>"
    }
});

// append data tools
appendDataTools();

// initialize the TableTools and then append to DOM
function appendDataTools() {
    var tt = new $.fn.dataTable.TableTools(table, {

        // it uses a Flash SWF file to provide the ability to
        // copy text to the system clipboard and save files locally.
        "sSwfPath": "../swf/copy_csv_xls_pdf.swf",

        // select which buttons to display and export only the visible columns
        // now the exporting only the selection is broken
        "aButtons": [
            {
                "sExtends": "copy",
                "mColumns": "visible",
                "bSelectedOnly": true
            },
            {
                "sExtends": "xls",
                "mColumns": "visible",
                "bSelectedOnly": true
            },
            {
                "sExtends": "print",
                "mColumns": "visible",
                "bSelectedOnly": true,
                "bShowAll": false
            }
        ]
    });
    var dataTools = $("#dataTableTools");
    dataTools.append(tt.fnContainer());
}

});

Примечание. По состоянию на 04 сентября 2015 г. расширение TableTools устарело. Похоже, оно заменяется расширением кнопок. Хотя я не мог видеть кнопку print, надеюсь скоро увидеть ее :)

person 12oz    schedule 04.09.2015