JSP前端数据本地排序
在前端中我们经常需要数据的排序,首先写引入我写好的js
$(function($) {
$('#sclazzId').val($('#voId').val());
document.getElementsByName('nameup')[0].style.display = "none";
document.getElementsByName('nameup')[1].style.display = "none";
document.getElementsByName('nameup')[2].style.display = "none";
document.getElementsByName('nameup')[3].style.display = "none";
var tabobj = document.getElementById("tbValue");
/*
* for (var i = 2; i < tabobj.rows.length; i++) {
*
* if (tabobj.rows[i].cells[1].innerHTML == code) {
*
* tabobj.rows[i].style.backgroundColor = "red";
*
* break; } }
*/
});
function OnChange(code) {
// alert(document.getElementById("drpIndustry").value+"_"+code+".html");
window.location.href = document.getElementById("drpIndustry").value + "_"
+ code + ".html";
}
// 转换器,将列的字段类型转换为可以排序的类型:String,int,float
function convert(sValue, sDataType) {
switch (sDataType) {
case "int":
if (sValue != "--")
return parseInt(sValue);
else
return -10000000000000;
case "float":
if (sValue != "--")
return parseFloat(sValue);
else
return -10000000000000.0;
case "date":
if (sValue != "--")
return new Date(Date.parse(sValue));
else
return "1900-01-01";
default:
return sValue.toString();
}
}
// 排序函数产生器,iCol表示列索引,sDataType表示该列的数据类型
function generateCompareTRs(iCol, sDataType) {
return function compareTRs(oTR1, oTR2) {
var vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);
var vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);
if (vValue1 < vValue2) {
return -1;
} else if (vValue1 > vValue2) {
return 1;
} else {
return 0;
}
};
}
// 排序方法
function sortTable(sTableID, iCol, sDataType) {
if (document.getElementsByName('nameup')[parseInt(iCol) - 1].style.display == 'none') {
document.getElementsByName('nameup')[parseInt(iCol) - 1].style.display = 'block';
document.getElementsByName('namedown')[parseInt(iCol) - 1].style.display = 'none';
} else {
document.getElementsByName('nameup')[parseInt(iCol) - 1].style.display = 'none';
document.getElementsByName('namedown')[parseInt(iCol) - 1].style.display = 'block';
}
var oTable = document.getElementById(sTableID);
var oTBody = oTable.tBodies[0];
var colDataRows = oTBody.rows;
var aTRs = new Array;
// 将所有列放入数组
for (var i = 0; i < colDataRows.length; i++) {
aTRs[i] = colDataRows[i];
}
// 判断最后一次排序的列是否与现在要进行排序的列相同,是的话,直接使用reverse()逆序
if (oTable.sortCol == iCol) {
aTRs.reverse();
} else {
// 使用数组的sort方法,传进排序函数
aTRs.sort(generateCompareTRs(iCol, sDataType));
}
var oFragment = document.createDocumentFragment();
for (var i = 0; i < aTRs.length; i++) {
aTRs[i].cells[0].innerHTML = i + 1;
oFragment.appendChild(aTRs[i]);
}
oTBody.appendChild(oFragment);
// 记录最后一次排序的列索引
oTable.sortCol = iCol;
}
function detatilWork(id) {
alert(id);
$.post("", {
id : id
}, function() {
});
}
function reflash() {
window.location.reload(true);
}
function openSearch() {
var name = $('#sname').val();
var clazzId = $('#sclazzId').val();
window.location.href = "assistantWork.action?name=" + name + "&clazzId="
+ clazzId;
}
function lastPage(page) {
var name = $('#sname').val();
var clazzId = $('#sclazzId').val();
page = (page - 1 < 0) ? 0 : (page - 1);
window.location.href = "assistantWork.action?page=" + page + "&name="
+ name + "&clazzId=" + clazzId;
}
function selPage(page) {
var name = $('#sname').val();
var clazzId = $('#sclazzId').val();
window.location.href = "assistantWork.action?page=" + page + "&name="
+ name + "&clazzId=" + clazzId;
}
function nextPage(page, pages) {
var name = $('#sname').val();
var clazzId = $('#sclazzId').val();
page = (page + 1 > pages) ? pages : (page + 1);
window.location.href = "assistantWork.action?page=" + page + "&name="
+ name + "&clazzId=" + clazzId;
}
function detail(id, type) {
$.ajax({
url : 'selectOneWork.action?id=' + id,
async : false, // 同步请求
error : function() {
alert("失败");
},
success : function(data) {
data = eval("(" + data + ")");
$('#workid').val(data.id);
$('#cname').val(data.name);
$('#sclazzIdM').val(data.clazzId);
$('#cdescription').val(data.description);
},
}, 'json');
if(type==1){
//查看 需要改成不可编辑
setDisabled();
}else if(type==2){
cleanDisabled();
}
}
function add(){
cleanDisabled();
}
function setDisabled(){
$('#cname').attr("disabled",true);
$('#sclazzIdM').attr("disabled",true);
$('#cdescription').attr("disabled",true);
$('#submitWork').attr("disabled",true);
}
function cleanDisabled(){
$('#cname').attr("disabled",false);
$('#sclazzIdM').attr("disabled",false);
$('#cdescription').attr("disabled",false);
$('#submitWork').attr("disabled",false);
}
在jsp页面中我们只需要在字段中嵌入这两div就可以实现视觉上的升序或降序,真正实现排序的是字段上面的那个点击事件,事件的执行方法在上面的脚本中都已经写好了,就这么简单,你就实现了表格数据的本地排序,大大的减少了与服务器之间的访问次数。
- 另外在说一句就是在我们的jsp中我们有的时候并不是很需要数据库数据的格式,这个时候我们需要将数据的格式进行转化,转化的方式有很多种,我们可以将数据在后台的时候进行格式处理,但是这样做的话在效率上并不是很快,我们在jsp中就有这样的标签
- 这样我们就实现了日期的格式化处理,值得注意的是这里的fmt只能用我页面上的布局,不能用工具上的格式化处理,处理过就会影响我们上面的本地排序,所以只能用我的格式
JSP前端数据本地排序的更多相关文章
- Webservice WCF WebApi 前端数据可视化 前端数据可视化 C# asp.net PhoneGap html5 C# Where 网站分布式开发简介 EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下? SQL Server之深入理解STUFF 你必须知道的EntityFramework 6.x和EntityFramework Cor
Webservice WCF WebApi 注明:改编加组合 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下, ...
- Handlebars的基本用法 Handlebars.js使用介绍 http://handlebarsjs.com/ Handlebars.js 模板引擎 javascript/jquery模板引擎——Handlebars初体验 handlebars.js 入门(1) 作为一名前端的你,必须掌握的模板引擎:Handlebars 前端数据模板handlebars与jquery整
Handlebars的基本用法 使用Handlebars,你可以轻松创建语义化模板,Mustache模板和Handlebars是兼容的,所以你可以将Mustache导入Handlebars以使用 Ha ...
- LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android
LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android jincon 发表于 2015-02-26 18:31:01 发表在: php开发 localresiz ...
- Ajax实现xml文件数据插入数据库(二)--- ajax实现与jsp的数据交互。
在上一篇文章中我们成功得到了重新组织后的数据,接下来需要做的便是将数据插入到数据库中了.在与数据库打交道的过程中有一些方法是普遍的,我们将这些通用方法封装到一个DbUtil类中,以便复用,封装好的Db ...
- 前端数据存储方案集合(cookie localStorage等)以及详解 (二)
前端数据存储方案集合(cookie localStorage等)以及详解 (二) 在之前的文章中已经介绍到了 前端存储方案中的 cookie . 但是 cookie 的存储上限是 4KB. 如果超过了 ...
- Android开发之对ListView的数据进行排序
这里涉及到对ListView的数据进行排序,以及ListView的数据如何清空处理.排序的方法相同,但是里面的数据集合有些区别:一种是利用pojo类取得数据:另一种是利用map来取得数据. 第一种:利 ...
- 3年磨一剑,我的前端数据 mock 库 http-mock-middleware
不好意思,离开博客园4年多了,一回来就是为自己打广告,真是害羞啊... http-mock-middleware 是我最近完成的一个前端数据 mock 库.它是我汇总近3年工作经验而诞生的一个工具,使 ...
- 前端页面表格排序 jQuery Table 基础
通常来说, 排序的方式有两种, 一种是我们在查询的时候就排好序,然后将数据渲染到前台页面上, 但是这样做有个弊端,就是在争对做好了缓存处理的系统, 在查询相同数据的时候进行排序,可能不能成功, 因为进 ...
- 【译】高级T-SQL进阶系列 (七)【下篇】:使用排序函数对数据进行排序
此文为翻译,由于本人水平有限,疏漏在所难免,欢迎探讨指正. 原文链接:传送门. 使用NTILE函数的示例 NTILE函数将一组记录分割为几个组.其返回的分组数是由一个整形表达式指定的.如下你会找到NT ...
随机推荐
- 从零开始基于go-thrift创建一个RPC服务
Thrift 是一种被广泛使用的 rpc 框架,可以比较灵活的定义数据结构和函数输入输出参数,并且可以跨语言调用.为了保证服务接口的统一性和可维护性,我们需要在最开始就制定一系列规范并严格遵守,降低后 ...
- 自我救赎 → 利用 IDEA 和 Spring Boot 搭建 SSM
前言 开心一刻 儿子读高中放学回来了,一向不管他学习的我突然来了兴趣,想看看他的学习他的状况,抄起他的数学习题看了起来,当看到 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x ...
- python 的一些小项目
1.在线教育平台(视频播放) 2.仿微信网页版(语音.视频.文字聊天) 3.高德API + Python 解决租房问题 4.仿知乎 5.Django打造文件分享系统.文件管理.搜索引擎(仿云盘) 6. ...
- QRowTable表格控件(二)-红涨绿跌
目录 一.开心一刻 二.概述 三.效果展示 四.任务需求 五.指定列排序 六.排序 七.列对其方式 八.相关文章 原文链接:QRowTable表格控件(二)-红涨绿跌 一.开心一刻 一天,五娃和六娃去 ...
- MyBatis:choose标签的用法
<!-- 4.2 choose用法 需求: 在已有的sys_user表中,除了主键id外,我们认为user_name也是唯一的, 所有的用户名都不可以重复.现在进行如下查询:当参数id有值的时候 ...
- MFC在一个工程中启动其他工程的exe文件
说明:有的时候把两个工程合并,但是偷懒不想在工程中添加代码,所以想到了这个办法,仅限偷懒哈哈哈哈 方法:新建一个主程序,在主程序的界面中添加按钮,在按钮的程序代码中添加以下语句: void CMain ...
- MySQL常用工具、日志及读写分离
MySQL常用工具.日志及读写分离 1.MySQL中常用工具 1.1 mysql 1.1.1连接选项 1.1.2 执行选项 1.2 mysqladmin 1.3 mysqlbinlog 1.4 mys ...
- 如何在Windows上使用Python进行开发
本文由葡萄城技术团队于原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 一直以来C#都是微软在编程语言方面最为显著的Tag,但时至今日Python ...
- 浅谈CMDB
CMDB和运维自动化 一.运维 运维,指的是对已经搭建好的网络,软件,硬件进行维护.运维领域也是细分的,有硬件运维和软件运维 硬件运维主要包括对基础设施的运维,比如机房的设备,主机的硬盘,内存这些物理 ...
- Reporting报表开发知识合并[个人原创]
[个人原创] ,转发请声明原文链接 了解 a) SSRS全称 SQL Server Reporting Services,是依赖于数据库运行的,是微软开发的重量级别的BI产品 b) ...