function GetCustomerList() { $.fn.dataTable.pipeline = function (opts) { var conf = $.extend({ pages: 5, url: "/Customer/GetAllCustomer", data: null, method: 'POST' }, opts); var cacheLower = -1; var cacheUpper = null; var cacheLastRequest = null; var cacheLastJson = null; return function (request, drawCallback, settings) { var ajax = false; var requestStart = request.start; var drawStart = request.start; var requestLength = request.length; var requestEnd = requestStart + requestLength; if (settings.clearCache) { ajax = true; settings.clearCache = false; } else if (cacheLower < 0 || requestStart < cacheLower || requestEnd > cacheUpper) { ajax = true; } else if (JSON.stringify(request.order) !== JSON.stringify(cacheLastRequest.order) || JSON.stringify(request.columns) !== JSON.stringify(cacheLastRequest.columns) || JSON.stringify(request.search) !== JSON.stringify(cacheLastRequest.search) ) { ajax = true; } cacheLastRequest = $.extend(true, {}, request); if (ajax) { if (requestStart < cacheLower) { requestStart = requestStart - (requestLength * (conf.pages - 1)); if (requestStart < 0) { requestStart = 0; } } cacheLower = requestStart; cacheUpper = requestStart + (requestLength * conf.pages); request.start = requestStart; request.length = requestLength * conf.pages; if (typeof conf.data === 'function') { var d = conf.data(request); if (d) { $.extend(request, d); } } else if ($.isPlainObject(conf.data)) { $.extend(request, conf.data); } settings.jqXHR = $.ajax({ "type": conf.method, "url": conf.url, "data": request, "dataType": "json", "cache": false, "success": function (json) { cacheLastJson = $.extend(true, {}, json); if (cacheLower != drawStart) { json.data.splice(0, drawStart - cacheLower); } if (requestLength >= -1) { json.data.splice(requestLength, json.data.length); } drawCallback(json); } }); } else { json = $.extend(true, {}, cacheLastJson); json.draw = request.draw; json.data.splice(0, requestStart - cacheLower); json.data.splice(requestLength, json.data.length); drawCallback(json); } } }; $.fn.dataTable.Api.register('clearPipeline()', function () { return this.iterator('table', function (settings) { settings.clearCache = true; }); }); if ($('#datatable')[0]) { var dataTableActions = '' + '
'; $("#datatable").DataTable({ "processing": true, // for show progress bar "serverSide": true, // for process server side "filter": true, // this is for disable filter (search box) "orderMulti": false, // for disable multiple column at once "searching": true, "destroy": true, "paging": true, 'createdRow': function (row, data, dataIndex) { $(row).attr('id', data.id); }, "ajax": $.fn.dataTable.pipeline({ "url": "/Customer/GetAllCustomer", "type": "POST", "datatype": "json", "pages": 5 //number of pages to cache }), "columnDefs": [{ "targets": 'all', "visible": true, "searchable": true, 'createdCell': function (tr, cellData, rowData, row, col) { $(tr).attr('id', 'id'); } }], "columns": [ { "data": "mobile", "name": "mobile", "autoWidth": true }, { "data": "identificationNumber", "name": "identificationNumber", "autoWidth": true }, { "data": "firstName", "name": "firstName", "autoWidth": true }, { "data": "lastName", "name": "lastName", "autoWidth": true }, { "data": "birthDate", "name": "birthDate", "render": function (data) { var date = new Date(parseInt((data).substr(6))).toLocaleDateString(); return date; } }, { "data": "eMail", "name": "eMail", "autoWidth": true }, { "data": "customerNumber", "name": "customerNumber", "autoWidth": true }, { "data": "address", "name": "address", "autoWidth": true }, { "data": "bankId", "name": "bankId", "autoWidth": true }, //{ "data": "areaCode", "name": "areaCode", "autoWidth": true }, { data: null, name: "blacklist", render: function (data, type, row) { var table = ''; if (data.blacklist == 1) { table += '