2016-12-12 33 views
0

我使用DataTables在表中显示信息,并且启用了服务器端加载(我只需要加载数据和分页),而且我不需要搜索或按服务器端排序,我需要默认搜索和排序(jQuery)为我的表。禁用服务器端处理进行排序

我该怎么做?

var table2 = $('#datatable-buttons2').DataTable({ 
 
    "serverSide": true, 
 
    "processing": true, 
 
    "asSorting": ['desc', 'asc'], 
 
    "ajax": { 
 
    'type': 'POST', 
 
    'url': 'test.php?nowsearch=1', 
 
    'data': { 
 
     inputaz: $("#inputaz").val(), 
 
     inputta: $("#inputta").val(), 
 
     inputkey: $("#inputkey").val() 
 
    } 
 
    }, 
 
    "columns": [{ 
 
    "data": "group_name" 
 
    }, { 
 
    "data": "sender" 
 
    }, { 
 
    "data": "date" 
 
    }], 
 
});

回答

0

也许你可以做到这一点,自定义的Javascript,检索的数据,但这是没有用的

如果您在serverSide: true你的客户方项目进行排序,它将进行排序只,不是基于数据库中的所有数据集当前获取的数据(如果你确实限制的结果,如果你不这样做,然后直接serverSide: false女巫使用将检索所有记录)。

例如,如果您有1000条记录,则只能获得前10个数据,而不是全部(10/25/50/100)。如果你在本地排序age,它将排序检索到的10.然后,如果你转到下一页,你会注意到第2页不是从第1页开始连续的。

这就是为什么当您使用serverSide: true必须编写在后端语言的排序/搜索:在那里你会排序第一和然后返回10条记录进行排序。

这就是这个选项的想法。

无论如何...您也可以使用paging option为客户端(serverSide: false)分页。但是你需要了解性能。简而言之,如果你要处理很多记录,你应该继续使用服务器端,并编写你的后端的排序/搜索/分页/等,返回相应的数据。不那么难。你可以玩parameters sent来实现这一点。

相关问题