jsp+js实现可排序表格

 首先,定义一个js: tableSort.js:

function sort(tableId, sortColumn,nodeType) {   
    var table = document.getElementById("theTable");   
    var tableBody = table.tBodies[0];   
    var tableRows = tableBody.rows;   
       
       
    var rowArray = new Array();   
    for (var i = 0; i < tableRows.length; i++) {   
        rowArray[i] = tableRows[i];   
    }   
    if (table.sortColumn == sortColumn) {   
        rowArray.reverse();   
    } else {   
        rowArray.sort(generateCompareTR(sortColumn, nodeType));   
    }   
    var tbodyFragment = document.createDocumentFragment();   
    for (var i = 0; i < rowArray.length; i++) {   
        tbodyFragment.appendChild(rowArray[i]);   
    }   
    tableBody.appendChild(tbodyFragment);   
    table.sortColumn = sortColumn;   
}   
  
  
function generateCompareTR(sortColumn, nodeType) {   
    return function compareTR(trLeft, trRight) {   
        var leftValue = convert(trLeft.cells[sortColumn].firstChild.nodeValue, nodeType);   
        var rightValue = convert(trRight.cells[sortColumn].firstChild.nodeValue, nodeType);   
        if (leftValue < rightValue) {   
            return -1;   
        } else {   
            if (leftValue > rightValue) {   
                return 1;   
            } else {   
                return 0;   
            }   
        }   
    };   
}   
  
  
function convert(value, dataType) {   
    switch (dataType) {   
      case "int":   
        return parseInt(value);   
      case "float":   
        return parseFloat(value);   
      case "date":   
        return new Date(Date.parse(value));   
      default:   
        return value.toString();   
    }   
}

  然后是使用:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
<%   
    String path = request.getContextPath();   
    String basePath = request.getScheme() + "://"   
            + request.getServerName() + ":" + request.getServerPort()   
            + path + "/";   
%>  
  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
    <head>  
        <base href="<%=basePath%>">  
  
        <title>My JSP 'tabel.jsp' starting page</title>  
  
        <meta http-equiv="pragma" content="no-cache">  
        <meta http-equiv="cache-control" content="no-cache">  
        <meta http-equiv="expires" content="0">  
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
        <meta http-equiv="description" content="This is my page">  
        <!--  
    <link rel="stylesheet" type="text/css" href="styles.css">  
    -->  
        <script type="text/javascript" src="userjs/tableSort.js"></script>  
    </head>  
  
    <body>  
        <table id="theTable" align="center" border="1">  
            <thead>  
                <tr>  
                    <td>  
                        标题1   
                    </td>  
                    <td onclick="sort(theTable,1,'int')">  
                        标题2   
                    </td>  
                    <td onclick="sort(theTable,2,'int')">  
                        标题3   
                    </td>  
                    <td onclick="sort(theTable,3,'int')">  
                        标题4   
                    </td>  
                    <td onclick="sort(theTable,4,'int')">  
                        标题5   
                    </td>  
                    <td onclick="sort(theTable,5,'int')">  
                        标题6   
                    </td>  
                    <td onclick="sort(theTable,6,'int')">  
                        标题7   
                    </td>  
                </tr>  
            </thead>  
            <tbody>  
                <tr>  
                    <td>  
                        1   
                    </td>  
                    <td>  
                        2   
                    </td>  
                    <td>  
                        3   
                    </td>  
                    <td>  
                        4   
                    </td>  
                    <td>  
                        5   
                    </td>  
                    <td>  
                        6   
                    </td>  
                    <td>  
                        7   
                    </td>  
                </tr>  
                <tr>  
                    <td>  
                        2   
                    </td>  
                    <td>  
                        3   
                    </td>  
                    <td>  
                        4   
                    </td>  
                    <td>  
                        5   
                    </td>  
                    <td>  
                        6   
                    </td>  
                    <td>  
                        7   
                    </td>  
                    <td>  
                        1   
                    </td>  
                </tr>  
                <tr>  
                    <td>  
                        3   
                    </td>  
                    <td>  
                        4   
                    </td>  
                    <td>  
                        5   
                    </td>  
                    <td>  
                        6   
                    </td>  
                    <td>  
                        7   
                    </td>  
                    <td>  
                        1   
                    </td>  
                    <td>  
                        2   
                    </td>  
                </tr>  
                <tr>  
                    <td>  
                        4   
                    </td>  
                    <td>  
                        5   
                    </td>  
                    <td>  
                        6   
                    </td>  
                    <td>  
                        7   
                    </td>  
                    <td>  
                        1   
                    </td>  
                    <td>  
                        2   
                    </td>  
                    <td>  
                        3   
                    </td>  
                </tr>  
                <tr>  
                    <td>  
                        5   
                    </td>  
                    <td>  
                        6   
                    </td>  
                    <td>  
                        7   
                    </td>  
                    <td>  
                        1   
                    </td>  
                    <td>  
                        2   
                    </td>  
                    <td>  
                        3   
                    </td>  
                    <td>  
                        4   
                    </td>  
                </tr>  
                <tr>  
                    <td>  
                        6   
                    </td>  
                    <td>  
                        7   
                    </td>  
                    <td>  
                        1   
                    </td>  
                    <td>  
                        2   
                    </td>  
                    <td>  
                        3   
                    </td>  
                    <td>  
                        4   
                    </td>  
                    <td>  
                        5   
                    </td>  
                </tr>  
            </tbody>  
        </table>  
    </body>  
</html>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值