在前端中我们经常需要数据的排序,首先写引入我写好的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前端数据本地排序的更多相关文章

  1. 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平台下, ...

  2. Handlebars的基本用法 Handlebars.js使用介绍 http://handlebarsjs.com/ Handlebars.js 模板引擎 javascript/jquery模板引擎——Handlebars初体验 handlebars.js 入门(1) 作为一名前端的你,必须掌握的模板引擎:Handlebars 前端数据模板handlebars与jquery整

    Handlebars的基本用法 使用Handlebars,你可以轻松创建语义化模板,Mustache模板和Handlebars是兼容的,所以你可以将Mustache导入Handlebars以使用 Ha ...

  3. LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android

    LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android jincon 发表于 2015-02-26 18:31:01 发表在: php开发 localresiz ...

  4. Ajax实现xml文件数据插入数据库(二)--- ajax实现与jsp的数据交互。

    在上一篇文章中我们成功得到了重新组织后的数据,接下来需要做的便是将数据插入到数据库中了.在与数据库打交道的过程中有一些方法是普遍的,我们将这些通用方法封装到一个DbUtil类中,以便复用,封装好的Db ...

  5. 前端数据存储方案集合(cookie localStorage等)以及详解 (二)

    前端数据存储方案集合(cookie localStorage等)以及详解 (二) 在之前的文章中已经介绍到了 前端存储方案中的 cookie . 但是 cookie 的存储上限是 4KB. 如果超过了 ...

  6. Android开发之对ListView的数据进行排序

    这里涉及到对ListView的数据进行排序,以及ListView的数据如何清空处理.排序的方法相同,但是里面的数据集合有些区别:一种是利用pojo类取得数据:另一种是利用map来取得数据. 第一种:利 ...

  7. 3年磨一剑,我的前端数据 mock 库 http-mock-middleware

    不好意思,离开博客园4年多了,一回来就是为自己打广告,真是害羞啊... http-mock-middleware 是我最近完成的一个前端数据 mock 库.它是我汇总近3年工作经验而诞生的一个工具,使 ...

  8. 前端页面表格排序 jQuery Table 基础

    通常来说, 排序的方式有两种, 一种是我们在查询的时候就排好序,然后将数据渲染到前台页面上, 但是这样做有个弊端,就是在争对做好了缓存处理的系统, 在查询相同数据的时候进行排序,可能不能成功, 因为进 ...

  9. 【译】高级T-SQL进阶系列 (七)【下篇】:使用排序函数对数据进行排序

    此文为翻译,由于本人水平有限,疏漏在所难免,欢迎探讨指正. 原文链接:传送门. 使用NTILE函数的示例 NTILE函数将一组记录分割为几个组.其返回的分组数是由一个整形表达式指定的.如下你会找到NT ...

随机推荐

  1. IO流簡單代碼

    今天測試了一下,在博客園裏HTML源碼編譯器裏寫CSS内部樣式,更新編譯后,内部樣式可用,但是會將寫的内部樣式代碼强制加上代碼注釋進行編譯,有點類似于强制注入.編譯后的效果就是在前面加入了一個空的p標 ...

  2. JavaScript循环及输出方式

    好一段时间没写了,今天写一下JavaScript的循环和输出吧! 其实JavaScrip的循环跟C#.Java的循环用法是相同的. <!DOCTYPE html> <html> ...

  3. 分布式事务(4)---RocketMQ实现分布式事务项目

    RocketMQ实现分布式事务 有关RocketMQ实现分布式事务前面写了一篇博客 1.RocketMQ实现分布式事务原理 下面就这个项目做个整体简单介绍,并在文字最下方附上项目Github地址. 一 ...

  4. 关于CMTS设备的一些备忘

    博主工作内容包括cable modem,对CM的工作方式有一些了解,但是对CMTS头端怎么带动一个用户小区长久以来一直是一头雾水.今天找了些资料,对这块有了一些了解,并把自己的理解总结下来. 比如我家 ...

  5. java中的堆、栈、方法区等比较

    • 堆.栈.方法区 1. java中的栈(stack)和堆(heap)是java在内存(ram)中存放数据的地方 2. 堆区 存储的全部是对象,每个对象都包含一个与之对应的class的信息.(clas ...

  6. Java 将PDF 转为Word、图片、SVG、XPS、Html、PDF/A

    本文将介绍通过Java编程来实现PDF文档转换的方法.包括: 1. PDF转为Word 2. PDF转为图片 3. PDF转为Html 4. PDF转为SVG 4.1 将PDF每一页转为单个的SVG ...

  7. iOS 图解弹幕功能的实现

    先来看一张效果图(LICEcap录制的有点卡, 凑合看) 理一下大概流程: 接下来实现: 弹幕视图从底部弹上来, 依次动画向上滚动, 出屏幕就移除加入重用队列, 下次使用. 定义相关属性: 1. 根据 ...

  8. HTTP_1_Web及网络基础

    Web使用一种HTTP(HyperText TransFer Protocol,超文本协议)的协议作为规范,完成从客户端到服务器等一系列运作流程.可见web是建立在HTTP协议上通信的. 通常我们使用 ...

  9. java名词

    1 applet Java语言编写的小程序,可以包含在html页面中,有支持Java语言的浏览器执行,作用是在页面产生动态效果. 2 jdk java development kit java 开发环 ...

  10. JUint4的下载、配置及对一个算法编写单元测试用例(测试多组数据每组多个参数)

    一.JUnit4 jar包下载 链接:https://pan.baidu.com/s/1AdeVGGikcY5dfL151ZnWHA 提取码:h1am 下载完成后,解压一下即可. 二.导入JUnit4 ...