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 相关文章推荐
node.js中的fs.appendFileSync方法使用说明
Dec 17 Javascript
Javascript编程中几种继承方式比较分析
Nov 28 Javascript
利用Angularjs实现幻灯片效果
Sep 07 Javascript
详解JavaScript模块化开发
Dec 04 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
Dec 25 Javascript
javascript事件的传播基础实例讲解(35)
Feb 14 Javascript
ionic实现下拉刷新载入数据功能
May 11 Javascript
Vue 2中ref属性的使用方法及注意事项
Jun 12 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
js取0-9随机取4个数不重复的数字代码实例
Mar 27 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
Aug 06 Javascript
使用jquery实现轮播图效果
Jan 02 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变量引用的面试题
2010/08/08 PHP
发一个php简单的伪原创程序,配合商城采集用的
2010/10/12 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
php中chdir()函数用法实例
2014/11/13 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
2012/04/14 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
python gdal安装与简单使用
2019/08/01 Python
python 字典访问的三种方法小结
2019/12/05 Python
django ajax发送post请求的两种方法
2020/01/05 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
工作决心书范文
2014/03/11 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
读书活动总结
2014/04/28 职场文书
食品安全承诺书
2014/05/22 职场文书
信用卡工作证明模板
2014/09/14 职场文书
团队会宣传标语
2014/10/09 职场文书
太空授课观后感
2015/06/17 职场文书
Matplotlib可视化之添加让统计图变得简单易懂的注释
2021/06/11 Python
Python安装使用Scrapy框架
2022/04/12 Python
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技