fengyue_xyj |
2005-11-03 00:11 |
高手们一起研究研究SPLS这段SORTING的JS代码
colNum是column的号码,比如第四个td那么colNum代入4。
问题:不能正确sorting,总是按数字的第一个数字来排序。或者按汉字的内码排序而不是拼音。
代码如下:
代码:
function JM_PowerList(colNum){
headEventObject=event.srcElement
while(headEventObject.tagName!="TR"){
headEventObject=headEventObject.parentElement}
for (i=0;i<headEventObject.children.length;i++){
if (headEventObject.children[i]!=event.srcElement){
headEventObject.children[i].className='listTableHead'}
}
var tableRows=0;
trObject=DataTable.children[0].children
for (i=0;i<trObject.length;i++){
Object=DataTable.children[0].children[i];
tableRows=(trObject[i].id=='ignore')?tableRows:tableRows+1;
}
var trinnerHTML=new Array(tableRows)
var tdinnerHTML=new Array(tableRows)
var tdNumber=new Array(tableRows)
var i0=0
var i1=0
for (i=0;i<trObject.length;i++){
if (trObject[i].id!='ignore'){
trinnerHTML[i0]=trObject[i].innerHTML;
tdinnerHTML[i0]=trObject[i].children[colNum].innerHTML;
tdNumber[i0]=i;
i0++;
}
}
sourceHTML=clearStart.children[0].outerHTML;
//alert(sourceHTML);
for (bi=0;bi<tableRows;bi++){
for (i=0;i<tableRows;i++){
if(tdinnerHTML[i]>tdinnerHTML[i+1]){
t_s=tdNumber[i+1];
t_b=tdNumber[i];
tdNumber[i+1]=t_b;
tdNumber[i]=t_s;
temp_small=tdinnerHTML[i+1];
temp_big=tdinnerHTML[i];
tdinnerHTML[i+1]=temp_big;
tdinnerHTML[i]=temp_small;
}
}
}
var showshow='';
var numshow='';
for (i=0;i<tableRows;i++){
showshow=showshow+tdinnerHTML[i]+'\n';
numshow=numshow+tdNumber[i]+'|';
}
sourceHTML_head=sourceHTML.split("<TBODY>");
numshow=numshow.split("|");
var trRebuildHTML='';
if (event.srcElement.className=='listHeadClicked'){
for (i=0;i<tableRows;i++){
trRebuildHTML=trRebuildHTML+trObject[numshow[tableRows-1-i]].outerHTML;
}
event.srcElement.className='listHeadClicked0';
}else{
for (i=0;i<tableRows;i++){
trRebuildHTML=trRebuildHTML+trObject[numshow[i]].outerHTML;
}
event.srcElement.className='listHeadClicked';
}
var DataRebuildTable='';
DataRebuildTable=sourceHTML_head[0]+trObject[0].outerHTML+trRebuildHTML+trObject[tableRows+1].outerHTML+'</TABLE>';
clearStart.innerHTML='';
clearStart.innerHTML=DataRebuildTable;
}
|