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 相关文章推荐
js可突破windows弹退效果代码
Aug 09 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
Mar 14 Javascript
JQueryEasyUI Layout布局框架的使用
Apr 08 Javascript
JavaScript对象的property属性详解
Apr 01 Javascript
zTree插件下拉树使用入门教程
Apr 11 Javascript
第十章之巨幕页头缩略图与警告框组件
Apr 25 Javascript
javascript实现平滑无缝滚动
Aug 09 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
Jan 08 Javascript
vue v-model表单控件绑定详解
May 17 Javascript
extjs简介_动力节点Java学院整理
Jul 17 Javascript
简单学习5种处理Vue.js异常的方法
Jun 17 Javascript
VUE路由动态加载实例代码讲解
Aug 26 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
php cookis创建实现代码
2009/03/16 PHP
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
2013/06/24 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
php正则表达式使用方法整理集合
2020/01/31 PHP
Javascript Select操作大集合
2009/05/26 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
Python中的类与对象之描述符详解
2015/03/27 Python
python中map()与zip()操作方法
2016/02/27 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
python 如何调用远程接口
2020/09/11 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
建龙钢铁面试总结
2014/04/15 面试题
医学专业五年以上个人求职信
2013/12/03 职场文书
执行力心得体会
2013/12/31 职场文书
中专自我鉴定
2014/02/05 职场文书
初三班主任寄语大全
2014/04/04 职场文书
python pyhs2 的安装操作
2021/04/07 Python
如何在Python项目中引入日志
2021/05/31 Python
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
Mybatis-Plus 使用 @TableField 自动填充日期
2022/04/26 Java/Android