ksh*_*ghl 10 sorting jquery jquery-plugins datatables
我正在使用datatables插件来处理我们的表.我们有这个用例,我们需要使用bServerSide和sAjaxSource通过ajax调用来获取数据(分页),但是我们只想对该页面上的数据进行排序,而不是从服务器中获取已排序的数据,就像在我们的例子中这样读取会很贵.
有可能吗?如果是,请建议如何继续.提前致谢!!
我读过这个讨论可能会对您有所帮助:基本上您必须使用这些选项初始化表;
"bServerSide" : false,
"sAjaxSource" : "path to your ajax source"
Run Code Online (Sandbox Code Playgroud)
这样,数据仅加载一次,所有过滤都由客户端完成。
如果您想加载更多数据,可以使用fnReloadAjax。您可以阅读有关该主题的讨论,我认为它有您需要的所有答案。
编辑 - 使用管道,您可以避免仅为了分页而频繁调用服务器(如果您过滤数据,则会调用服务器)。如果您只想将数据发送到服务器一次,然后在客户端过滤数据,则必须禁用服务器端处理(将上面的选项设置为白色)。如果禁用服务器端处理,您可以为用户提供一种通过“fnReloadAjax”(例如按钮)从服务器获取附加数据的方法。
我仍然不明白的是,您是否需要从服务器获取一些其他数据,或者用户首先获取的数据可以吗?
编辑2 - 如果您不想调用服务器,您可以通过增强现有表来完全避免使用AJAX。只需像这样创建 html 服务器端:
<table width="770" border="0" id='rdr_home' class='tablesorter'>
<thead>
<tr>
<th>col1</th>
<th>col2</th>
<th>col3</th>
</tr>
</thead>
<tbody>
<?php
foreach ($rows as $row){
//echo all rows here (be careful as for each row you must
//have as many <td> as the column: no colspan!
}
?>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
然后创建你的数据表,例如这样
oTable = $('.tablesorter').dataTable({
"aaSorting": [[2, "asc"]],
"bAutoWidth": false,
"bFilter": false,
"sDom": 'T<"clear">lfrtip',
"aoColumns": [
{ "sType": "html" },
{ "sType": "html" },
null
],
"oLanguage": {
"sUrl": "templates/rhuk_milkyway/dataTables/media/language/it_IT.txt"
}
});
Run Code Online (Sandbox Code Playgroud)
这样你就可以在服务器端进行分页和过滤
编辑3 - 在您提到的情况下(数据表负责分页,但不要求过滤),我认为您必须添加一些额外的插件。您必须在初始化过程中禁用数据表的过滤器和排序器,如下所示;
"bFilter": false,
"bSort": false,
Run Code Online (Sandbox Code Playgroud)
然后使用另一个组件对屏幕上的内容进行排序和过滤。您可以在此处查看具有排序和过滤功能的解决方案:http://silverwareconsulting.com/index.cfm/2008/10/2/jquery-autofiltering-table
(我个人不喜欢通过点击进行过滤的想法,但是如果您想使用更符合您口味的东西,您可以在此基础上进行构建),无论如何,如果您允许服务器端,则不能使用数据表内置过滤器分页
归档时间: |
|
查看次数: |
17274 次 |
最近记录: |