1. 前言

主要是利用了HTHNL5的localStorage技术和用ajax传输一个数组到后台并进行判断。这篇文章是解决一个小需求而来的,主要是用来记录。

2. 代码

JavaScript:

        var g_sample_sortArr = [];
var sample_sortKey,sample_sortVal; $("#grid-sample").on("initialize.rs.jquery.bootgrid", function (e) { if (typeof localStorage.sample_rowCount == 'string') {
$("#grid-sample").bootgrid("setRowCount", localStorage.sample_rowCount);
} if (typeof localStorage.sample_sortDict == 'string') {
var sortObj = JSON.parse(localStorage.sample_sortDict);
//global
sample_sortKey = Object.keys(sortObj)[0];
sample_sortVal = sortObj[sample_sortKey];
g_sample_sortArr = [];
g_sample_sortArr.push(sample_sortKey,sample_sortVal);
console.log("lastItemSort[]="+sample_sortKey+":"+sample_sortVal);
} }) function updateArrowDirection(){
//show arrow Direction when refresh PMS page
var arrowDirection = (sample_sortVal == 'asc') ? 'icon glyphicon glyphicon-chevron-up' : 'icon glyphicon glyphicon-chevron-down';
$('[data-column-id="' + sample_sortKey + '"] span:last').attr('class',arrowDirection);
} var grid_sample_data =
$('#grid-sample').bootgrid({
ajax:true,
rowCount:[10, 20, 30, 50],
navigation: 3,
post:function(){
return {
type: 'getSampleInfo',
"lastItemSort[]": g_sample_sortArr
};
},
searchSettings: {
delay: 200,
characters: 3
},
url: "./sample",
dataType: "json",
rowSelect: false,
formatters:{ }
}).on("loaded.rs.jquery.bootgrid",function(){
localStorage.setItem("sample_rowCount", $("#grid-sample").bootgrid("getRowCount"));
var curSortDict = $("#grid-sample").bootgrid("getSortDictionary");
if(Object.keys(curSortDict).length != 0){
localStorage.setItem("sample_sortDict", JSON.stringify(curSortDict));
}
}); //show arrow Direction when refresh
updateArrowDirection(); 

Java:

        String id = request.getParameter("sort[id]");
String sender = request.getParameter("sort[sender]");
String received = request.getParameter("sort[received]"); String[] lastItemSort = request.getParameterValues("lastItemSort[]"); //example: string like ["id","asc"] if(lastItemSort != null) {//refresh current page or go to others page and return previous page switch(lastItemSort[0]) {
case "id": //when id != null, it denotes one click id to sort and previous var id will get value.
if(id == null) id = lastItemSort[1]; break;
case "sender":
if(sender == null) sender = lastItemSort[1]; break;
case "received":
if(received == null) received = lastItemSort[1]; break;
default:
System.out.println("This Type Can't Support for Sample Sort"); }
}  

3. 效果图

文字描述,就是之前点击排序后,刷新还能保持之前的排序和正确的箭头指向。

4. 总结

利用H5的localStorage技术可以bootgrid刷新保持当前排序,当然还可以保存当前显示的行数,其它需要保存的变量都可以用这个技术来保存,这个localStorage保存的数据,有效期很长,只要在本机电脑的浏览器使用过一次,就可以一直保存住该变量值,类似保存在本地的文本一样的感觉。

bootgrid 刷新保持当前排序的更多相关文章

  1. winform中datagridview刷新后的排序记忆

    datagridview先点标题排序,但是重新刷新之后,还是变成窗体加载后的样子 我这里用定时器刷新的. 1.先定义三个全局变量 /// <summary> /// 需要排序的列和方向 / ...

  2. 扩展GridView实现的一个自定义无刷新分页,排序,支持多种数据源的控件TwfGridView

    最近项目View层越来越趋向于无刷新化,特别是数据展示方面,还要对Linq有很好的支持.在WebFrom模式的开发中,GridView是一个功能很强大,很常用的控件,但是他也不是完美的,没有自带的无刷 ...

  3. 从零开始编写自己的C#框架(16)——Web层后端父类

    本章节讲述的各个类是后端系统的核心之一,涉及到系统安全验证.操作日志记录.页面与按键权限控制.后端页面功能封装等内容,希望学习本系列的朋友认真查看新增的类与函数,这对以后使用本框架进行开发时非常重要. ...

  4. UI第十八节——UITableView

    在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,基本大部分应用都有UITableView.当然它的广泛使用自然离不开它强大的功能,今天就针对U ...

  5. iOS开发系列--UITableView全面解析

    --UIKit之UITableView 概述 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是U ...

  6. iOS-UI-UI控件概述

    以下列举一些在开发中可能用得上的UI控件: IBAction和IBOutlet,UIView 1 @interface ViewController : UIViewController 2 3 @p ...

  7. UITableView全面解析

    本文转自:http://www.cocoachina.com/ios/20140922/9710.html 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以 ...

  8. UITableView全面解析,讲的好详细

    --UIKit之UITableView 概述 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是U ...

  9. UITableView 全面详解

    在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是UITableView.当然它的广泛使用自然离不 ...

随机推荐

  1. php 防止sql注入的简单方法

    您可以使用PHP的功能,如函数stripslashes()和addslashes(),mysql_real_escape_string()等,使安全的SQL查询. 以下是安全的SQL语句,使用PHP ...

  2. 转:@ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常

    继承 ResponseEntityExceptionHandler 类来实现针对 Rest 接口 的全局异常捕获,并且可以返回自定义格式: 复制代码 1 @Slf4j 2 @ControllerAdv ...

  3. 基于 Django 2.0.4 的 djcelery 配置

    Django Celery 配置实践 所需环境 python 3.5.2 rabbitmq 安装所需的包 pip install -r requirements.txt QuickStart 创建Dj ...

  4. vue基础篇---修改对象或数组的值,页面实时刷新

    这个问题估计大家很难想到,如果一个数组[1,2,3,4],然后我们v-for遍历,我们改变数组的值,arr[1] = 5 ,难道不应该改变么?按理说根据vue的特性应该是改变的,但是事实上确实数组已经 ...

  5. JAVA记录-JSP页面获取服务器路径方式

    1.basePath方式 <% String path = request.getContextPath(); String basePath = request.getScheme()+&qu ...

  6. Hibernate SQL查询 addScalar()或addEntity()【转】

    本文完全引用自: http://www.cnblogs.com/chenyixue/p/5601285.html Hibernate除了支持HQL查询外,还支持原生SQL查询.          对原 ...

  7. ThreadLocal以及内存泄漏

    ThreadLocal是什么 ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度.但是如果滥用Thr ...

  8. 20155330 2016-2017-2 《Java程序设计》第六周学习总结

    20155330 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 学习目标 理解流与IO 理解InputStream/OutPutStream的继承架构 理解 ...

  9. OBS 录制视频 自己留存

    1. 下载安装 软件下载地址:https://github.com/jp9000/obs-studio/releases/download/19.0.2/OBS-Studio-19.0.2-Full- ...

  10. 转载-YARN的内存和CPU配置

    Hadoop YARN同时支持内存和CPU两种资源的调度,本文介绍如何配置YARN对内存和CPU的使用. YARN作为一个资源调度器,应该考虑到集群里面每一台机子的计算资源,然后根据applicati ...