javascript 排序

    技术2022-05-11  79

    <SCRIPT language=JavaScript type=text/javascript>//主要用于页面排序var curObj;var globalColIndex=0;//表示没有排序var noSort="0";//表示升序var ascSort="1";//表示降序var descSort="2";var tableRowDataArr=new Array();//数据数组var theDataRowsArr=new Array();//标题数组var theTitleRowsArr=new Array();//列排序标记数组var tableColSortFlagArr=new Array();function sortTable(tempColIndex,imageName) {  var prefix_str="imagerorder";  var suffix_str="_0";  var image_path="/test/sort/";  sortTableForProceeding(tempColIndex,imageName,tableRowDataArr,theDataRowsArr  ,theTitleRowsArr,tablesortlist,tableColSortFlagArr,prefix_str,suffix_str,image_path);}</SCRIPT>

     

     

     

    //排序函数脚本function sortTableForProceeding(tempColIndex,imageName,tableRowDataArr   ,theDataRowsArr,theTitleRowsArr,tablesortlist,tableColSortFlagArr   ,prefix_str,suffix_str   ,image_path){  var start=new Date()  var i;  var imageObj=null;  if(tablesortlist.rows.length==2){    if(tablesortlist.rows[1].cells.length==1){      return ;    }   }    initColSortFlag(tablesortlist,tableColSortFlagArr);  //把第一行的标题行数据装入数组中  for(i=0;i<tablesortlist.rows.length;i++) {        theTitleRowsArr[i]=new Array(tablesortlist.rows[i].cells[tempColIndex].innerText.toLowerCase(),tablesortlist.rows[i].outerHTML);      }  //alert(tablesortlist.rows[1].cells[tempColIndex].innerText.toLowerCase());  //把数据装入数组中  for(i=0;i<tablesortlist.rows.length;i++) {    //过滤掉标题行    if(i==0){      theDataRowsArr[i]=new Array("","");    }    else{      theDataRowsArr[i]=new Array(tablesortlist.rows[i].cells[tempColIndex].innerText.toLowerCase(),tablesortlist.rows[i].outerHTML);    }    //alert(theDataRowsArr[i]);    //alert("2:"+tablesortlist.rows[i].outerHTML);  }  //排序  //alert(tableColSortFlagArr[tempColIndex]+"&tempColIndex:"+tempColIndex);  //一开始是没有排序  if(tableColSortFlagArr[tempColIndex]==noSort){    theDataRowsArr.sort(sortRowsDesc);    tableColSortFlagArr[tempColIndex]=descSort;  }  else{    if(tableColSortFlagArr[tempColIndex]==ascSort){      theDataRowsArr.sort(sortRowsDesc);      tableColSortFlagArr[tempColIndex]=descSort;        }    else{      if(tableColSortFlagArr[tempColIndex]==descSort){        theDataRowsArr.sort(sortRowsAsc);        tableColSortFlagArr[tempColIndex]=ascSort;           }      }  }  //alert(tableColSortFlagArr[tempColIndex]);  var str='';  var tempStr='';  for(i=0;i<theDataRowsArr.length;i++) {        if(i==0){          str+=theTitleRowsArr[i][1];          str+=theDataRowsArr[i][1];        }        else{          tempStr=theDataRowsArr[i][1];          if(i % 2==0){               if(tempStr.indexOf('<TR class=rowoutdark2 align=middle>')>=0){              tempStr=tempStr.replace('<TR class=rowoutdark2 align=middle>','<TR class=rowoutdark align=middle>');            }          }          else{            if(tempStr.indexOf('<TR class=rowoutdark align=middle>')>=0){              tempStr=tempStr.replace('<TR class=rowoutdark align=middle>','<TR class=rowoutdark2 align=middle>');            }          }          theDataRowsArr[i][1]=tempStr;   str+=theDataRowsArr[i][1]; }  }  tablesortlist.outerHTML='<table id="tablesortlist" width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#A0A0A0">'+str+'</table>'  curObj=null;   //变换图片   imageObj=getFormObjectByObjectName(imageName);   //alert("adfsaf:"+imageObj+"&I:"+tableColSortFlagArr[tempColIndex]);   if(imageObj!=null){     if(tableColSortFlagArr[tempColIndex]==ascSort){       imageObj.setAttribute("src",image_path+"images/downarrow.gif");       imageObj.setAttribute("width","10");       imageObj.setAttribute("height","10");       //alert("adfsaf:"+imageObj+"&I:"+tableColSortFlagArr[tempColIndex]);     }     if(tableColSortFlagArr[tempColIndex]==descSort){      imageObj.setAttribute("src",image_path+"images/uparrow.gif");      imageObj.setAttribute("width","10");      imageObj.setAttribute("height","10");      //alert("adfsaf:"+imageObj+"&I:"+tableColSortFlagArr[tempColIndex]);     }        }   //alert(imageObj);   //清除图片   for(i=0;i<tablesortlist.rows.length;i++) {    if(i==0){      for (j=0;j<tablesortlist.rows(i).cells.length;j++)      {             if(tempColIndex!=j){          tableColSortFlagArr[j]=noSort;        }               if(tableColSortFlagArr[j]==noSort){          //alert("j:"+j+"&tableColSortFlagArr:"+tableColSortFlagArr[j]);          imageObj=getFormObjectByObjectName(prefix_str+j+suffix_str);          if(imageObj!=null){            imageObj.setAttribute("src","");            imageObj.setAttribute("width","0");            imageObj.setAttribute("height","0");          }        }      }    }    break;  }  return ;}

    function initColSortFlag(tablesortlist,tableColSortFlagArr){  //保存排序标记  for(i=0;i<tablesortlist.rows.length;i++) {   if(i==0){     for (j=0;j<tablesortlist.rows(i).cells.length;j++)     {                   if(tableColSortFlagArr[j]==null){         tableColSortFlagArr[j]=noSort;       }     }   }    break;  }} 

     

    以下是使用示例,排序页面如下:

      <TABLE id=tablesortlist cellSpacing=1 cellPadding=3 width="100%"       align=center bgColor=#a0a0a0 border=0>         <TBODY>         <TR class=rowoutlight align=middle bgColor=#c9d8ff>           <TD width="5%">全选 <INPUT  type=checkbox             value=checkbox name=chkall></TD>           <TD οnclick="javascript:sortTable('1','imagerorder1_0');"             width="15%"><DIV align=center><FONT title=点击标题,进行数据排序             style="CURSOR: hand">项目名称</FONT> <IMG title="" height=1             src="/arrowdown.gif" width=1 name=imagerorder1_0> </DIV></TD>           <TD οnclick="javascript:sortTable('2','imagerorder2_0');"             width="15%"><DIV align=center><FONT title=点击标题,进行数据排序             style="CURSOR: hand">项目类型</FONT> <IMG title="" height=1             src="/arrowdown.gif" width=1 name=imagerorder2_0> </DIV></TD>           <TD οnclick="javascript:sortTable('3','imagerorder3_0');"             width="14%"><DIV align=center><FONT title=点击标题,进行数据排序             style="CURSOR: hand">项目类别</FONT> <IMG title="" height=1             src="/arrowdown.gif" width=1 name=imagerorder3_0> </DIV></TD>           <TD οnclick="javascript:sortTable('4','imagerorder4_0');"             width="10%"><DIV align=center><FONT title=点击标题,进行数据排序             style="CURSOR: hand">申请者名称</FONT> <IMG title="" height=1             src="/arrowdown.gif" width=1 name=imagerorder4_0> </DIV></TD>           <TD οnclick="javascript:sortTable('5','imagerorder5_0');"             width="13%"><DIV align=center><FONT title=点击标题,进行数据排序             style="CURSOR: hand">联系电话</FONT> <IMG title="" height=1             src="/arrowdown.gif" width=1 name=imagerorder5_0> </DIV></TD>           <TD οnclick="javascript:sortTable('6','imagerorder6_0');">             <DIV align=center><FONT title=点击标题,进行数据排序             style="CURSOR: hand">申报时间</FONT> <IMG title="" height=1             src="/arrowdown.gif" width=1 name=imagerorder6_0> </DIV></TD>           <TD οnclick="javascript:sortTable('7','imagerorder7_0');">             <DIV align=center><FONT title=点击标题,进行数据排序             style="CURSOR: hand">市级</FONT> <IMG title="" height=1             src="/arrowdown.gif" width=1 name=imagerorder7_0> </DIV></TD>           <TD οnclick="javascript:sortTable('8','imagerorder8_0');">             <DIV align=center><FONT title=点击标题,进行数据排序             style="CURSOR: hand">资金合计</FONT> <IMG title="" height=1             src="/arrowdown.gif" width=1 name=imagerorder8_0>         </DIV></TD></TR>

     

     


    最新回复(0)