JS实现table表格数据排序功能(可支持动态数据+分页效果)


Posted in Javascript onMay 26, 2016

asp.net会经常遇到分页的效果,尤其是希望实现静态的html分页排序(html分页相信大家都已经有自己的解决方案.在这里就不多说).我写了一个简单的Demo排序.

数据就是字母和数字两组.(汉字需要找到asc码) 原理就是利用数组自带的sort排序,进行表格重组.已在.net mvc 中测试过.支持分页.(申明一点.只对当前页面数据排序 无刷新,对所有页面排序的话,肯定需要刷新.这点我还在解决中.)希望有新想法的高手们,给下指点.

下面把html的代码贴出来:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD><TITLE>js操作刷新</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8" ;>
<script language="javaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
</HEAD>
<SCRIPT>
//--------------------- 排序
//需要在排序的table上加id="tableNeed",需在排序的列上加onclick="sortt('.?')",在此列所有<td>上加class="?"
function sortt(className){
var listName=new Array();
var listNameOld=new Array();
var listTr=new Array();
var listSort=new Array();
var i=1;
var b=false;
//取得原来的<tr>,并清空<table>
$("#tableNeed tr").each(function(){
listTr.push($(this).html());
});
//得到要排列的列的元素,并在末尾追加此刻的顺序(从1开始)
$(className).each(function(){
listName.push($(this).text()+i);
listNameOld.push($(this).text()+i);
i++;
});
//将要排序的元素排序
mySort(listName);
//判断排序后元素位置是否发生变化
for(var j=0;j<listName.length;j++){
if(listName[j].substring(listName[j].length-listNameOld[j].length)!=listNameOld[j]){
b=true;
break;
}
}
//排序后,根据先前追加的顺序得到此时<tr>的顺序
for(var j=0;j<listName.length;j++){
listSort.push(parseInt(listName[j].substring(listName[j].length-1)));
}
$("#tableNeed").html('');
//按顺序追加<tr>,若排序后元素顺序未变化,则倒序追加
$("#tableNeed").append("<tr class='header'>"+listTr[0]+"</tr>");
if(b){
for(var j=0;j<listSort.length;j++){
$("#tableNeed").append("<tr>"+listTr[listSort[j]]+"</tr>");
}
}else{
for(var j=listSort.length-1;j>=0;j--){
$("#tableNeed").append("<tr>"+listTr[listSort[j]]+"</tr>");
}
}
}
//首先按字符个数排序,然后按相对应的字符大小排序
function mySort(list){
var len=0;
var add="";
for(var i=0;i<list.length;i++){
var str=list[i];
if(str.length>len){
len=str.length;
}
}
for(var i=0;i<len;i++){
add+="0"
}
for(var i=0;i<list.length;i++){
var strOne=add+list[i];
list[i]=strOne.substring(strOne.length-len);
}
list.sort();
}
//----------------------------
</SCRIPT>
<BODY>
<TABLE id="tableNeed" border=1>
<tr><td onclick="sortt('.1')">数字</td><td onclick="sortt('.2')">字母</td><td onclick="sortt('.3')">数字和字母</td></tr>
<tr><td class="1">11</td><td class="2">ee</td><td class="3">1a</td></tr>
<tr><td class="1">22</td><td class="2">gg</td><td class="3">7g</td></tr>
<tr><td class="1">33</td><td class="2">cc</td><td class="3">d4</td></tr>
<tr><td class="1">44</td><td class="2">aa</td><td class="3">3c</td></tr>
<tr><td class="1">55</td><td class="2">dd</td><td class="3">e5</td></tr>
<tr><td class="1">66</td><td class="2">ff</td><td class="3">f6</td></tr>
<tr><td class="1">77</td><td class="2">hh</td><td class="3">2b</td></tr>
<tr><td class="1">88</td><td class="2">bb</td><td class="3">h8</td></tr>
</TABLE>
</BODY></HTML>

以上所述是小编给大家介绍的JS实现table表格数据排序功能(可支持动态数据+分页效果) ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript下给元素添加事件的方法与代码
Aug 13 Javascript
该如何加载google-analytics(或其他第三方)的JS
May 13 Javascript
jquery ui对话框实例代码
May 10 Javascript
javascript判断非数字的简单例子
Jul 18 Javascript
js四舍五入数学函数round使用实例
May 09 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 Javascript
bootstrap日历插件datetimepicker使用方法
Dec 14 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
Jul 03 Javascript
微信小程序倒计时功能实例代码
Jul 17 Javascript
微信小程序基础教程之worker线程的使用方法
Jul 15 Javascript
微信小程序HTTP接口请求封装代码实例
Sep 05 Javascript
如何在Vue.JS中使用图标组件
Aug 04 Javascript
JS代码实现table数据分页效果
May 26 #Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
May 26 #Javascript
辨析JavaScript中的Undefined类型与null类型
May 26 #Javascript
JavaScript数组的栈方法与队列方法详解
May 26 #Javascript
详解JavaScript中this关键字的用法
May 26 #Javascript
ashx文件获取$.ajax()方法发送的数据
May 26 #Javascript
js操作数据库实现注册和登陆的简单实例
May 26 #Javascript
You might like
杏林同学录(八)
2006/10/09 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
php判断当前操作系统类型
2015/10/28 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
Javascript 圆角div的实现代码
2009/10/15 Javascript
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
js实现放大镜特效
2017/05/18 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
vue引入js数字小键盘的实现代码
2018/05/14 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
你们项目是如何进行变更控制的
2015/08/26 面试题
文明礼仪事迹材料
2014/01/09 职场文书
小学后勤管理制度
2014/01/14 职场文书
银行员工职业规划范文
2014/01/21 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
政工师工作总结2015
2015/05/26 职场文书
钱学森电影观后感
2015/06/04 职场文书
致运动员赞词
2015/07/22 职场文书
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle