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. display position 和float的作用和关系

    1.传统布局由这三者构成. 2.position设为absolute,那么display一定是block,因此对于span来说,就可以设置高和宽了. 3.position为relative ,那么fl ...

  2. 目标检测网络之 Mask R-CNN

    Mask R-CNN 论文Mask R-CNN(ICCV 2017, Kaiming He,Georgia Gkioxari,Piotr Dollár,Ross Girshick, arXiv:170 ...

  3. HTTP Status 405 - HTTP method POST is not supported by this URL

    出现这个问题, 1.在servlet中没有调用post()方法引起的 2.在serlvet中跳转没有用外跳(response.sendRedirect()) 我的是因为第一种,是没有写dopost() ...

  4. 继承之es5对比es6

    es5: 熟悉es5的童鞋们就知道es5的继承多么恶心~~ es5最经典的继承写法就是如下这样 1.写一个function,用this来扩展其值类属性 2.prototype添加其方法类属性 3.若整 ...

  5. C#修饰符详解

    不定期更新,2017.8.9 一.new 别看new这个修饰符经常用,恐怕很多人都不知道其本质.我们先来看看new修饰符的官方定义: new 仅允许在嵌套类声明中使用,表明类中隐藏了由基类中继承而来的 ...

  6. JavaSE学习总结(二)——Java语言基础

    一.Java程序预览 Java的语法与C非常类似,这里先使用几个非常简单的程序以点带面来区分C语Java的区分再细讲每个知识点.该文仅针对有编程基础的朋友参考. 1.1.Hello World 创建j ...

  7. 10、JPA-二级缓存

    pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  8. mysql -- 动态获取结果集(重点)

    注意:语句传值的时候必须是带有@符号的参数,不能是自己的局部变量,一个@叫用户变量,两个@叫做全局变量.用户变量:当前用户的‘’全局变量‘’,用户状态存在时就存在,用户退出时消失. 初始版 delim ...

  9. golang基础数据结构链表

    链表 链表(Linked list),是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer). 每个节点包含下一个节点的地址,这样把所有的节点串起来了, ...

  10. springboot(十二):springboot单元测试、打包部署

    单元测试 1.在pom包中添加spring-boot-starter-test包引用 <dependency> <groupId>org.springframework.boo ...