zoukankan      html  css  js  c++  java
  • Jquery原创排序table

    思路:利用交换行配合最小排序法来实现

    1.调用方法,如sortColumn(1,1)

    2.getColumnValue(1,2) 得到第一行第二列的值

    3.exChangeRow(1,4) 交换第一和第四行(这个方法i必须小于j)

    源码如下(适当修改即可使用):

    <script language="javascript" type="text/javascript">
             var sortDirection = 'desc';
             function sortColumn(column,type) {
                 var rows = $("#MyGrid tbody tr").length-2+1;
                 for (var i = 2; i <= rows; i++) {
                     for (var j = 2; j <= rows; j++) {
                         if (sortDirection == 'desc') {
                             if (compareValueNew(getColumnValue(i, column),getColumnValue(j, column),type,1)) {
                                 if (i < j) {
                                     exChangeRow(i, j);
                                 }
                                 else {
                                     exChangeRow(j, i);
                                 }
                             }
                         }
                         if (sortDirection == 'asc') {
                             if (compareValueNew(getColumnValue(i, column),getColumnValue(j, column),type,2)){
                                 if (i < j) {
                                     exChangeRow(i, j);
                                 }
                                 else {
                                     exChangeRow(j, i);
                                 }
                             }
                         }
                        
                     }
                 }

                 if (sortDirection == 'desc') {
                     sortDirection = 'asc';
                 }
                 else {
                     sortDirection = 'desc';
                 }
             }

             function getColumnValue(row,column)
             {
                var returnValue = $("#MyGrid tbody tr:eq("+row+") td:eq("+column+")").text();
                return returnValue;
             }

            function exChangeRow(i, j) {
                 $("#MyGrid tbody tr:eq(" + j + ")").insertAfter($("#MyGrid tbody tr:eq(" + i + ")"));
                 $("#MyGrid tbody tr:eq(" + i + ")").insertAfter($("#MyGrid tbody tr:eq(" + j + ")"));

             }

             function compareValueNew(value1, value2, type,direction) {
                 //1 text
                 if (1 == type) {
                     if (1 == direction) {
                         return value1 < value2;
                     }
                     else {
                         return value1 > value2;
                     }
                 }
                 //2 float
                 if (2 == type) {
                     if (1 == direction) {
                         return parseFloat(value1) < parseFloat(value2);
                     }
                     else {
                         return parseFloat(value1) > parseFloat(value2);
                     }
                 }
             }

        </script>

  • 相关阅读:
    关于 Wordpress安装时出现“Warning: Cannot modify header information – headers already sent by….”
    C#、.Net经典面试题集锦(二)
    .net 中的事务总结
    什么是webservice
    Web Service与 .NET Remoting
    动态语句exec与sp_executesql执行计划区别
    SQL2005以上版本派生表更新
    清理sql server 2005 服务器名称列表
    如何卸载VS2008
    [怎樣處理]SQL2008、SQL2005類型判斷出錯
  • 原文地址:https://www.cnblogs.com/kenny999/p/2936440.html
Copyright © 2011-2022 走看看