GUI Components JavaScript Tutorial



    
  Table Sort Example
        
        
            function convert(sValue, sDataType) {
                switch(sDataType) {
                    case "int":
                        return parseInt(sValue);
                    case "float":
                        return parseFloat(sValue);
                    case "date":
                        return new Date(Date.parse(sValue));
                    default:
                        return sValue.toString();
                
                }
            }
        
            function generateCompareTRs(iCol, sDataType) {
        
                return  function compareTRs(oTR1, oTR2) {
                            var vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);
                            var vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);
        
                            if (vValue1 < vValue2) {
                                return -1;
                            } else if (vValue1 > vValue2) {
                                return 1;
                            } else {
                                return 0;
                            }
                        };
            }
           
            function sortTable(sTableID, iCol, sDataType) {
                var oTable = document.getElementById(sTableID);
                var oTBody = oTable.tBodies[0];
                var colDataRows = oTBody.rows;
                var aTRs = new Array;
        
                for (var i=0; i < colDataRows.length; i++) {
                    aTRs[i] = colDataRows[i];
                }
        
                if (oTable.sortCol == iCol) {
                    aTRs.reverse();
                } else {
                    aTRs.sort(generateCompareTRs(iCol, sDataType));
                }
        
                var oFragment = document.createDocumentFragment();
                for (var i=0; i < aTRs.length; i++) {
                    oFragment.appendChild(aTRs[i]);
                }
       
                oTBody.appendChild(oFragment);
                oTable.sortCol = iCol;
            }
        
    
    
        

Click on the table header to sort in ascending order.


        
            
                
                                            style="cursor:pointer">Last Name
                                            style="cursor:pointer">First Name
                                            style="cursor:pointer">Birthday
                                            style="cursor:pointer">Siblings
                
            
            
                
                    Smith
                    John
                    7/12/1978
                    2
                
                
                    Johnson
                    Betty
                    10/15/1977
                    4
                
                
                    Henderson
                    Nathan
                    2/25/1949
                    1
                
                
                    Williams
                    James
                    7/8/1980
                    4
                
                
                    Gilliam
                    Michael
                    7/22/1949
                    1
                
                
                    Walker
                    Matthew
                    1/14/2000
                    3