使用Datatables时,开启后台分页后,其原有的很多功能都无法使用,比如修每页显示数量。使用datatables自带的MenuLength是很好的功能,但是使用后台分页后,这个功能就毫无用武之地。然而,我们可以自己写一个select来完成这一项功能。
<select id="ssize">
<option value="10">10条/页</option>
<option value="15">15条/页</option>
<option value="20">20条/页</option>
<option value="30">30条/页</option>
</select>
同时,我也推荐在页面中放一个隐藏的input,存放当前页码,以备不时之需。
<!-- datatables首页标记为0 -->
<input type="hidden" id="pageNo" value="0">
同时,也需要后台有后台的配合。这里以JFinal举例,springmvc参考一下就好。而这里datatables后台分页采用ajax(具体参考我上一篇博文的第二种方法),把start的值改为当前页码*用户选着条数即可。
"ajax":{
"url": "#(ctx)/admin/getHouseInfo",
"type":"post",
"data": function ( d ) {
//添加额外的参数传给服务器
d.search = $('#search').val();
d.size = $("#ssize").val();
d.start = $("#pageNo").val()*$("#ssize").val();//当前页面*用户选择条数
return {"aoData":JSON.stringify(d)};
}
}
public static Map<String, Object> getPageNoAjax(String json){
JSONObject jobject = JSONObject.parseObject(json);
map.put("iDisplayStart", Integer.parseInt(jobject.getString("start")));
System.out.println("start:"+jobject.getString("start"));
map.put("search", jobject.getString("search"));
map.put("size", jobject.getInteger("size"));
return map;
}
public void getHouseInfo(){
Map<String, Object> map = DataTableUtil.getPageNoAjax(getPara("aoData"));
Integer size = (Integer)map.get("size");
Page<Record> list = houseService.pageHouse((Integer)map.get("iDisplayStart")/size+1, size,map.get("search").toString());
renderJson(DataTableUtil.dataTypeAjax(list));
}
而获取当前页的信息只需监听切换页即可。而datatables提供了这一方法。在$().DataTable()后加上.on('page.dt')即可。代码如下:
.on( 'page.dt', function () {
$("#pageNo").val(datatable.page.info().page);
})
最后,给select加上onchange方法即可。
$("#ssize").on('change',function(){
$("#pageNo").val(0);//清除旧的页面信息
datatable.ajax.reload();
datatable.page.len($("#ssize").val()).draw();
});
最后的最后,介绍一个小技巧。使用datatables时,有可能都某一行信息进行而外操作。比如修改。如果是跳转页面的完成的,并在新页面完成操作后返回原来的table,并保持所在页数,最好不要连接到table的页面,直接使用javascript:history.go(-1); location.reload(); 返回旧页面即可。应为这样可以保存用户原来的选项,而datatables则会自动请求新的数据。但是,要进行一个小操作,那就是告诉datatables原来用户是在哪一页进行的操作,让datatables请求哪一页的数据(需完成上面所以所以操作)即可。
.on( 'init.dt', function () {
if($("#pageNo").val()!=0){//不是第一页执行翻页操作
var pageNo = $("#pageNo").val();
datatable.page(Number(pageNo)).draw(false);
}
})
相关推荐
- **分页**:Datatables可以自动处理大量数据,通过分页功能将数据分块显示,提高页面加载速度。 - **数据加载**:支持服务器端处理和客户端处理两种模式,可根据数据量选择合适的加载方式。 - **自定义列**:...
首先,Datatables允许用户通过AJAX请求获取数据,而不是在页面加载时一次性加载所有数据。这样可以提高页面加载速度,并且当数据量大时,能够有效减少浏览器内存消耗。在Java环境中,通常会使用Spring MVC作为后端...
使用方法: ... ... ...也可使用Eclipse直接导入此项目文件...分页栏增加跳页功能(直接修改了dataTables.bootstrap.js和dataTables.bootstrap.css) CSS实现单元格超长文字省略号显示 CSS实现单元格连续纯字母数字强制换行显示
回调函数是Datatables的核心特性之一,允许开发者自定义数据处理逻辑,例如在数据加载前后进行操作,或者在用户与表格交互时执行特定功能。 在"表格 demo datatables 回调"中,"回调"可能指的是Datatables的事件回...
jQuery滚动加载,也被称为无限滚动或懒加载,是网页设计中一种常见的优化技术。它允许网页在用户滚动页面到底部时动态加载更多内容,而无需手动点击“加载更多”按钮或者刷新整个页面。这种技术在新闻网站、社交媒体...
这一特性增强了用户交互性,使得用户可以根据个人偏好自定义显示顺序。 3. **导出**:DataTables 支持导出数据为CSV, Excel, PDF 或其他格式,方便用户进一步分析或保存数据。这个示例包含了导出功能,意味着用户...
#DataTables-CustomSearch jQuery插件DataTables 1.10的扩展( ),使您可以指定自定义搜索字段。 ##快速示例 $ ( 'table' ) . dataTable ( ) . customSearch ( ) ; ##选项### container可以是jQuery选择器字符串...
2. 自动分页:DataTables可以根据设定的每页显示行数自动分页,提高页面加载速度并优化用户体验。 3. 搜索过滤:提供高级搜索功能,允许用户输入关键词来筛选表格中的特定行。 4. 动态扩展:支持通过Ajax从服务器...
3. 分页:Datatables 支持分页显示大量数据,避免一次性加载过多内容导致页面卡顿,同时提供每页显示条数的自定义选项。 4. 列宽拖动:在付裕的案例中,用户可以自由调整列宽,以适应不同的显示需求,优化视觉体验...
通过设置每页显示的数据数量,用户可以轻松浏览大量数据,避免了页面过长导致的不便。同时,它还提供了页码导航,让用户可以方便地跳转到任意页。 在扩展性方面,Datatables支持各种自定义功能。你可以通过API添加...
3. **服务器端处理**:对于大量数据,DataTables支持服务器端处理模式,只加载当前页面所需的数据,减轻了前端的负担,提高了页面加载速度和性能。 4. **自定义列和数据**:开发者可以自定义每列的显示内容和样式,...
在本篇文章中,我们主要探讨了如何利用jQuery DataTables插件实现自定义Ajax分页功能。DataTables是一个强大的jQuery插件,它可以轻松地将普通的HTML表格转化为具有高级控制功能的表格,例如搜索、排序、分页等。在...
**Datatables 示例** Datatables 是一个强大的开源JavaScript库,用于将HTML表格转化为功能丰富的...实践是学习的最佳途径,尝试将示例代码应用到自己的项目中,你会发现Datatables是一个强大而灵活的数据展示工具。
9. **自定义事件和扩展**:Datatables允许添加自定义事件处理函数,以及使用众多的插件和扩展来增强功能,如按钮、固定列、导出数据等。 10. **模板应用**:"我的模板"可能是包含上述配置的一个实际应用示例,可以...
本资源提供的插件`fnReloadAjax`是针对`DataTables`的一个增强功能,它使得在不刷新整个页面的情况下,能够重新加载表格中的数据,这对于实时更新或者异步获取数据的场景尤为重要。 `DataTables`本身支持Ajax数据源...
3. 分页:Datatables能够将大量数据分割成易于管理的小块,通过分页功能提高页面加载速度和用户体验。 4. 数据异步加载(Ajax):支持通过Ajax从服务器动态加载数据,实现数据的实时更新。 5. 自定义列显示:允许...
首先,确保在页面中引入jQuery库和DataTables的CSS及JS文件。这些文件可以从DataTables官方网站下载或通过CDN链接获取。例如: ```html <link rel="stylesheet" type="text/css" href="https://cdn.datatables...
例如,可以通过API设置初始加载的页面,调整排序规则,或者在特定事件(如数据加载完成)上执行自定义操作。配置选项则涵盖数据源类型、表格样式、列定义等,允许定制化到每一个细节。 **数据源** Datatables 支持...