[xsl] multiple sort problem

Subject: [xsl] multiple sort problem
From: Ravi Danda <ravidanda@xxxxxxxxx>
Date: Wed, 12 Jan 2005 18:11:05 -0800 (PST)
Sorry for the long mail..

I am having trouble sorting multiple tables on one
style sheet .I have three different tables with their
own Div ID on my style sheet. The sorting works well
on the first table,but for the second and third
tables,sorting doesn't work. Even worse,when clicked
on a column in the second and third table,the first
table gets sorted.

Below is the sort methods I have for the first and
second tables along with the init..

 function init()
		{
			stylesheet = document.all.tableXSL.XMLDocument;
			if (stylesheet == null) return;
			source = document.all.XMLdata.XMLDocument;
			sortOrder =
document.XSLDocument.selectSingleNode("//xsl:sort/@order");
			sortField =
stylesheet.selectSingleNode("//xsl:sort/@select");
			dataType =
document.XSLDocument.selectSingleNode("//xsl:sort/@data-type");
			sortOrder1 =
document.XSLDocument.selectSingleNode("//xsl:sort/@order");
			sortField1 =
stylesheet.selectSingleNode("//xsl:sort/@select");
			dataType1 =
document.XSLDocument.selectSingleNode("//xsl:sort/@data-type");
			lastSortField=sortField.value;
                       
lastSortField1=sortField1.value;
		        sortOrder.value = 'descending';
			sortOrder1.value = 'descending';
			sortList1('./FTI_TICKET_NO',8);
                        document.all["TD8"].className 
= 'tablehead';
			sortList('./FTI_TICKET_NO',1);
			document.all["TD1"].className  = 'tablehead';
			for(var i=1; i <= 21; i++)
			{
			 document.all["IMG"+i].src =
'../includes/images/sort.gif';
			}
		}
//for pending complete tickets

               function sortList1(field1,num)
		{

			if(field1==lastSortField1)
			{
		 		if(sortOrder1.value!='ascending')
		 			sortOrder1.value='ascending';
		 		else
		 		        sortOrder1.value='descending';
			}
			//alert(sortOrder1.value);
			sortField1.value =field1;
			lastSortField1=field1;
			  if( num==8 || num==9 || num==10 ||num ==11 || num
== 12 || num == 13 || num ==14 )
			    {
				dataType.value='number';
                            }
			  else
				dataType.value='text';
                      newHTML =
source.transformNode(stylesheet);
                      document.all.tableBody.innerHTML
= newHTML;
			//document.body.innerHTML = "";
		
//document.body.innerHTML=source.documentElement.transformNode(stylesheet);
			//change styles
			for(var i=8; i <= 14; i++)
			{
				document.all["TD"+i].className  = "tablehead";
			}

			document.all["TD"+num].className  = "tablelink";
			if(sortOrder1.value == 'ascending')
			  document.all["IMG"+num].src =
"../includes/images/sortup.gif";
			else
			  document.all["IMG"+num].src =
"../includes/images/sortdown.gif";
		     
if(document.getElementById("btnCollapseExpand").value
== 'Closed Tickets++')
		       {
                       
document.getElementById("btnCollapseExpand").value =
"Closed Tickets- -";
                       
document.getElementById("CLOSEDTICKETSDIV").style.display="inline";
                       }
      
		}
        //Implementing Sorting
		function sortList(field,num)
		{

			if(field==lastSortField)
			{
		 		if(sortOrder.value!='ascending')
		 			sortOrder.value='ascending';
		 		else
		 		        sortOrder.value='descending';
			}
			sortField.value =field;
			lastSortField=field;
			  if(num==1 || num==2 || num==3 ||num ==4 || num ==
5 || num == 6|| num ==7 || num==15 || num==16 ||
num==17 ||num ==18 || num == 19 || num == 20 || num
==21)
			    {
				dataType.value='number';
                            }
			  else
				dataType.value='text';

			document.body.innerHTML = "";
		
document.body.innerHTML=source.documentElement.transformNode(stylesheet);
			//change styles
			for(var i=1; i <= 7; i++)
			{
				document.all["TD"+i].className  = "tablehead";
			}

			document.all["TD"+num].className  = "tablelink";
			if(sortOrder.value == 'ascending')
			  document.all["IMG"+num].src =
"../includes/images/sortup.gif";
			else
			  document.all["IMG"+num].src =
"../includes/images/sortdown.gif";

  
                      
if(document.getElementById("btnCollapseExpand").value
== 'Closed Tickets++')
		       {
                       
document.getElementById("btnCollapseExpand").value =
"Closed Tickets- -";
                       
document.getElementById("CLOSEDTICKETSDIV").style.display="inline";
                       }
		}

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Current Thread