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 相关文章推荐
Google韩国首页图标动画效果
Aug 26 Javascript
jQuery中val()方法用法实例
Dec 25 Javascript
详解javascript中的事件处理
Nov 06 Javascript
浅析JavaScript作用域链、执行上下文与闭包
Feb 01 Javascript
JS取数字小数点后两位或n位的简单方法
Oct 24 Javascript
关于微信上网页图片点击全屏放大效果
Dec 19 Javascript
vue中使用sessionStorage记住密码功能
Jul 24 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
Apr 02 Javascript
解决Vue @submit 提交后不刷新页面问题
Jul 18 Javascript
Vue+Spring Boot简单用户登录(附Demo)
Nov 12 Javascript
jQuery实现动态操作table行
Nov 23 jQuery
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
php md5下16位和32位的实现代码
2008/04/09 PHP
PHP实现获取url地址中顶级域名的方法示例
2019/06/05 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
2017/09/29 NodeJs
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
python根据unicode判断语言类型实例代码
2018/01/17 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
10招!看骨灰级Pythoner玩转Python的方法
2019/04/15 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
2019/07/05 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
简短证婚人证婚词
2014/01/09 职场文书
新学期班主任寄语
2014/01/18 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
2014年国庆节寄语
2014/09/19 职场文书
我是特种兵观后感
2015/06/11 职场文书
八一建军节主持词
2015/07/01 职场文书
学生会工作感言
2015/08/07 职场文书
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫