JS實現(xiàn)table表格數(shù)據(jù)排序功能(可支持動態(tài)數(shù)據(jù)+分頁效果)
來源:易賢網(wǎng) 閱讀:2547 次 日期:2016-06-20 16:49:41
溫馨提示:易賢網(wǎng)小編為您整理了“JS實現(xiàn)table表格數(shù)據(jù)排序功能(可支持動態(tài)數(shù)據(jù)+分頁效果)”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了JS實現(xiàn)table表格數(shù)據(jù)排序功能(可支持動態(tài)數(shù)據(jù)+分頁效果) 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友一起看看吧

asp.net會經(jīng)常遇到分頁的效果,尤其是希望實現(xiàn)靜態(tài)的html分頁排序(html分頁相信大家都已經(jīng)有自己的解決方案.在這里就不多說).我寫了一個簡單的Demo排序.

數(shù)據(jù)就是字母和數(shù)字兩組.(漢字需要找到asc碼) 原理就是利用數(shù)組自帶的sort排序,進行表格重組.已在.net mvc 中測試過.支持分頁.(申明一點.只對當(dāng)前頁面數(shù)據(jù)排序 無刷新,對所有頁面排序的話,肯定需要刷新.這點我還在解決中.)希望有新想法的高手們,給下指點.

下面把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);

//判斷排序后元素位置是否發(fā)生變化

for(var j=0;j<listName.length;j++){

if(listName[j].substring(listName[j].length-listNameOld[j].length)!=listNameOld[j]){

b=true;

break;

}

}

//排序后,根據(jù)先前追加的順序得到此時<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>");

}

}

}

//首先按字符個數(shù)排序,然后按相對應(yīng)的字符大小排序

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')">數(shù)字</td><td onclick="sortt('.2')">字母</td><td onclick="sortt('.3')">數(shù)字和字母</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實現(xiàn)table表格數(shù)據(jù)排序功能(可支持動態(tài)數(shù)據(jù)+分頁效果) ,希望對大家有所幫助

更多信息請查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)