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获取GridView中用户点击控件的行号,列号
Apr 14 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
Feb 26 Javascript
jquery更换文章内容与改变字体大小代码
Sep 30 Javascript
JavaScript中的Math.E属性使用详解
Jun 12 Javascript
jQuery插件编写步骤详解
Jun 03 Javascript
JQuery DIV 动态隐藏和显示的方法
Jun 23 Javascript
全面总结Javascript对数组对象的各种操作
Jan 22 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
Nov 15 Javascript
JavaScript程序设计高级算法之动态规划实例分析
Nov 24 Javascript
Vue实现搜索 和新闻列表功能简单范例
Mar 16 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
Sep 18 Javascript
PM2自动部署代码步骤流程总结
Dec 10 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
深入密码加salt原理的分析
2013/06/06 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
js文件Cookie存取值示例代码
2014/02/20 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
基于JQuery和DWR实现异步数据传递
2020/10/16 jQuery
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
numpy下的flatten()函数用法详解
2019/05/27 Python
Python如何转换字符串大小写
2020/06/04 Python
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
写自荐信的七个技巧
2013/10/15 职场文书
电话客服工作职责
2014/07/27 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
教师节祝酒词
2015/08/11 职场文书
2016年国培研修日志
2015/11/13 职场文书
PHP实现rar解压读取扩展包小结
2021/06/03 PHP
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android