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 获取页面元素的位置的代码
Sep 25 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
Dec 12 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
Aug 24 Javascript
谈一谈jQuery核心架构设计
Mar 28 Javascript
详解vue-Resource(与后端数据交互)
Jan 16 Javascript
前端页面文件拖拽上传模块js代码示例
May 19 Javascript
bootstrap Table插件使用demo
Aug 07 Javascript
让网站自动生成章节目录索引的多个js代码
Jan 07 Javascript
微信小程序实现折叠面板
Jan 31 Javascript
微信小程序webview 脚手架使用详解
Jul 22 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 Javascript
基于js判断浏览器是否支持webGL
Apr 18 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
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
PHP简单实现DES加密解密的方法
2016/07/12 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
JQuery toggle使用分析
2009/11/16 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
javascript实现捕捉键盘上按下的键
2015/05/05 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
Python实现SMTP邮件发送
2020/06/16 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
自我鉴定 电子商务专业
2014/01/30 职场文书
促销活动总结报告
2014/04/26 职场文书
支行行长岗位职责
2015/02/15 职场文书
银行资信证明
2015/06/17 职场文书
2015年女工委工作总结
2015/07/27 职场文书
网络营销实训总结
2015/08/03 职场文书