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 相关文章推荐
用ADODB.Stream转换
Jan 22 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
Sep 14 Javascript
JavaScript中诡异的delete操作符
Mar 12 Javascript
js拆分字符串并将分割的数据放到数组中的方法
May 06 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
Sep 02 Javascript
18个非常棒的jQuery代码片段
Nov 02 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
Jul 22 Javascript
Javascript中常用的检测方法小结
Oct 08 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
Dec 14 Javascript
详解在Vue中有条件地使用CSS类
Sep 30 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
Sep 18 Javascript
javascript定时器的简单应用示例【控制方块移动】
Jun 17 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
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
解析thinkphp中的导入文件标签
2013/06/20 PHP
PHP+JavaScript实现无刷新上传图片
2017/02/21 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
浅析PHP开发规范
2018/02/05 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
jQuery 选择器理解
2010/03/16 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
浅析Cookie中的Path与domain
2013/12/18 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
详解如何在vue项目中引入elementUI组件
2018/02/11 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
python pdb调试方法分享
2014/01/21 Python
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
python实现可以断点续传和并发的ftp程序
2016/09/13 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
python算法题 链表反转详解
2019/07/02 Python
pandas 时间格式转换的实现
2019/07/06 Python
关于Python-faker的函数效果一览
2019/11/28 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
体育专业个人求职信范文
2013/12/27 职场文书
运动会广播稿200字
2014/01/15 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
文化与传播毕业生求职信
2014/03/09 职场文书
妇女干部培训方案
2014/05/12 职场文书
旅行社优秀创业计划书
2014/08/16 职场文书
销售人才自我评价范文
2014/09/27 职场文书