JS实现table表格数据排序功能(可支持动态数据+分页效果)
来源: 阅读:2504 次 日期:2016-06-20 16:49:41
温馨提示: 小编为您整理了“JS实现table表格数据排序功能(可支持动态数据+分页效果)”,方便广大网友查阅!

这篇文章主要介绍了JS实现table表格数据排序功能(可支持动态数据+分页效果) 的相关资料,非常不错,具有参考借鉴价值,需要的朋友一起看看吧

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表格数据排序功能(可支持动态数据+分页效果) ,希望对大家有所帮助

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map