`
wx1569110409
  • 浏览: 18643 次
文章分类
社区版块
存档分类
最新评论

Datatables自定义显示数量,重新加载保持在原页面而不是返回首页

 
阅读更多

       使用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);
		}
})

 

转载于:https://my.oschina.net/u/2349928/blog/1531560

分享到:
评论

相关推荐

    datatables

    - **分页**:Datatables可以自动处理大量数据,通过分页功能将数据分块显示,提高页面加载速度。 - **数据加载**:支持服务器端处理和客户端处理两种模式,可根据数据量选择合适的加载方式。 - **自定义列**:...

    Datatables实现多选框与AJAX返回数据 JAVA版

    首先,Datatables允许用户通过AJAX请求获取数据,而不是在页面加载时一次性加载所有数据。这样可以提高页面加载速度,并且当数据量大时,能够有效减少浏览器内存消耗。在Java环境中,通常会使用Spring MVC作为后端...

    DataTables自行封装请求参数和返回数据的零耦合服务端分页示例(PHP&JAVA)

    使用方法: ... ... ...也可使用Eclipse直接导入此项目文件...分页栏增加跳页功能(直接修改了dataTables.bootstrap.js和dataTables.bootstrap.css) CSS实现单元格超长文字省略号显示 CSS实现单元格连续纯字母数字强制换行显示

    表格 demo datatables 回调

    回调函数是Datatables的核心特性之一,允许开发者自定义数据处理逻辑,例如在数据加载前后进行操作,或者在用户与表格交互时执行特定功能。 在"表格 demo datatables 回调"中,"回调"可能指的是Datatables的事件回...

    jquery 滚动加载

    jQuery滚动加载,也被称为无限滚动或懒加载,是网页设计中一种常见的优化技术。它允许网页在用户滚动页面到底部时动态加载更多内容,而无需手动点击“加载更多”按钮或者刷新整个页面。这种技术在新闻网站、社交媒体...

    JQuery DataTables示例,包含分页、拖拽、导出

    这一特性增强了用户交互性,使得用户可以根据个人偏好自定义显示顺序。 3. **导出**:DataTables 支持导出数据为CSV, Excel, PDF 或其他格式,方便用户进一步分析或保存数据。这个示例包含了导出功能,意味着用户...

    DataTables-CustomSearch:jQuery插件DataTables的扩展,可让您指定自定义搜索字段

    #DataTables-CustomSearch jQuery插件DataTables 1.10的扩展( ),使您可以指定自定义搜索字段。 ##快速示例 $ ( 'table' ) . dataTable ( ) . customSearch ( ) ; ##选项### container可以是jQuery选择器字符串...

    dataTables中文网(离线版,外国网页没有离线)

    2. 自动分页:DataTables可以根据设定的每页显示行数自动分页,提高页面加载速度并优化用户体验。 3. 搜索过滤:提供高级搜索功能,允许用户输入关键词来筛选表格中的特定行。 4. 动态扩展:支持通过Ajax从服务器...

    datatables案例

    3. 分页:Datatables 支持分页显示大量数据,避免一次性加载过多内容导致页面卡顿,同时提供每页显示条数的自定义选项。 4. 列宽拖动:在付裕的案例中,用户可以自由调整列宽,以适应不同的显示需求,优化视觉体验...

    Datatables jquery表格插件

    通过设置每页显示的数据数量,用户可以轻松浏览大量数据,避免了页面过长导致的不便。同时,它还提供了页码导航,让用户可以方便地跳转到任意页。 在扩展性方面,Datatables支持各种自定义功能。你可以通过API添加...

    jquery DataTables-1.9.4

    3. **服务器端处理**:对于大量数据,DataTables支持服务器端处理模式,只加载当前页面所需的数据,减轻了前端的负担,提高了页面加载速度和性能。 4. **自定义列和数据**:开发者可以自定义每列的显示内容和样式,...

    jQuery DataTables插件自定义Ajax分页实例解析

    在本篇文章中,我们主要探讨了如何利用jQuery DataTables插件实现自定义Ajax分页功能。DataTables是一个强大的jQuery插件,它可以轻松地将普通的HTML表格转化为具有高级控制功能的表格,例如搜索、排序、分页等。在...

    datatables 示例

    **Datatables 示例** Datatables 是一个强大的开源JavaScript库,用于将HTML表格转化为功能丰富的...实践是学习的最佳途径,尝试将示例代码应用到自己的项目中,你会发现Datatables是一个强大而灵活的数据展示工具。

    datatables最简单的模板

    9. **自定义事件和扩展**:Datatables允许添加自定义事件处理函数,以及使用众多的插件和扩展来增强功能,如按钮、固定列、导出数据等。 10. **模板应用**:"我的模板"可能是包含上述配置的一个实际应用示例,可以...

    datatables刷新插件fnReloadAjax

    本资源提供的插件`fnReloadAjax`是针对`DataTables`的一个增强功能,它使得在不刷新整个页面的情况下,能够重新加载表格中的数据,这对于实时更新或者异步获取数据的场景尤为重要。 `DataTables`本身支持Ajax数据源...

    Datatables版本集合免积分下载

    3. 分页:Datatables能够将大量数据分割成易于管理的小块,通过分页功能提高页面加载速度和用户体验。 4. 数据异步加载(Ajax):支持通过Ajax从服务器动态加载数据,实现数据的实时更新。 5. 自定义列显示:允许...

    jquery-dataTables简单实例

    首先,确保在页面中引入jQuery库和DataTables的CSS及JS文件。这些文件可以从DataTables官方网站下载或通过CDN链接获取。例如: ```html &lt;link rel="stylesheet" type="text/css" href="https://cdn.datatables...

    前端项目-datatables.zip

    例如,可以通过API设置初始加载的页面,调整排序规则,或者在特定事件(如数据加载完成)上执行自定义操作。配置选项则涵盖数据源类型、表格样式、列定义等,允许定制化到每一个细节。 **数据源** Datatables 支持...

Global site tag (gtag.js) - Google Analytics