bootgrid 刷新保持当前排序
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 刷新保持当前排序的更多相关文章
- winform中datagridview刷新后的排序记忆
datagridview先点标题排序,但是重新刷新之后,还是变成窗体加载后的样子 我这里用定时器刷新的. 1.先定义三个全局变量 /// <summary> /// 需要排序的列和方向 / ...
- 扩展GridView实现的一个自定义无刷新分页,排序,支持多种数据源的控件TwfGridView
最近项目View层越来越趋向于无刷新化,特别是数据展示方面,还要对Linq有很好的支持.在WebFrom模式的开发中,GridView是一个功能很强大,很常用的控件,但是他也不是完美的,没有自带的无刷 ...
- 从零开始编写自己的C#框架(16)——Web层后端父类
本章节讲述的各个类是后端系统的核心之一,涉及到系统安全验证.操作日志记录.页面与按键权限控制.后端页面功能封装等内容,希望学习本系列的朋友认真查看新增的类与函数,这对以后使用本框架进行开发时非常重要. ...
- UI第十八节——UITableView
在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,基本大部分应用都有UITableView.当然它的广泛使用自然离不开它强大的功能,今天就针对U ...
- iOS开发系列--UITableView全面解析
--UIKit之UITableView 概述 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是U ...
- iOS-UI-UI控件概述
以下列举一些在开发中可能用得上的UI控件: IBAction和IBOutlet,UIView 1 @interface ViewController : UIViewController 2 3 @p ...
- UITableView全面解析
本文转自:http://www.cocoachina.com/ios/20140922/9710.html 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以 ...
- UITableView全面解析,讲的好详细
--UIKit之UITableView 概述 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是U ...
- UITableView 全面详解
在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是UITableView.当然它的广泛使用自然离不 ...
随机推荐
- 【POJ1952】逢低吸纳 dp+计数
题目大意:给定一个有 N 个数的序列,求其最长下降子序列的长度,并求出有多少种不同的最长下降子序列.(子序列各项数值相同视为同一种) update at 2019.4.3 题解:求最长下降子序列本身并 ...
- cdn模式下vue的基本用法
我们知道jq是简化了dom操作,而react和vue则是通过使用虚拟dom的方式,不需要频繁的更改ui界面,而是通过更改数据的方式来更新界面. 我们知道些jq插件时会在IFFE中传入jQuery,jQ ...
- 十二、java_网络编程
目录: 一.网络基础 二.TCP/IP协议 三.IP地址 四.Socket通信 一.网络基础 什么是计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系 ...
- 方法重载(overroad)和方法覆盖(override)------java基础知识总结
a.什么是方法重载?(同一个类中)方法重载是指在同一个类中,出现方法名相同,参数列表不同的情况. b.什么是方法覆盖?(子父类中)方法覆盖是指在子类中,出现和父类一模一样的方法声明的时候,会运行子类的 ...
- Java_Mybatis_注解代理写法
Mybatis的开发方式其实有3种: 1. 原始Dao开发(就是把mapper接口.映射文件和实现类都一并开发) 2. xml代理(就是只实现mapper接口和映射文件) 3.注解代理(就是只实现ma ...
- 面向对象【day07】:新式类和经典类(八)
本节内容 1.概述 2.类的多继承 3.经典类VS新式类 4.总结 一.概述 在python还支持多继承,但是一般我们很少用,有些语言干脆就不支持多继承,有多继承,就会带来两个概念,经典类和新式类,下 ...
- python---基于memcache的自定义session类
import config import hashlib import time import memcache import json conn = memcache.Client(["1 ...
- UVALive - 7639 G - Extreme XOR Sum(思维)
题目链接 题意 给出一个序列,相邻两两异或,生成一个新序列,再相邻两两异或,直到只剩下一个元素,问最后结果为多少.m个查询,每次都有一个待查询区间. 分析 既然有多组查询,n只是1e4,那么可以考虑预 ...
- ChunkDisappearImage-一个以矩形为单位的图片消失分解效果
效果 使用 1.将ChunkDisappearImage挂在一个空GameObject上. 2.将ChunkDisappearImage的Material设为ChunkDisappearImageMa ...
- 浅谈分词算法(4)基于字的分词方法(CRF)
目录 前言 目录 条件随机场(conditional random field CRF) 核心点 线性链条件随机场 简化形式 CRF分词 CRF VS HMM 代码实现 训练代码 实验结果 参考文献 ...