Subject: RE: [xsl] Generic sort using multiple columns From: "Michael Kay" <mhk@xxxxxxxxx> Date: Mon, 27 Oct 2003 08:58:43 -0000 |
I think that when it gets to this level of complexity, you should seriously consider generating a stylesheet containing xsl:sort elements to reflect the chosen sort order. If you're running client side, the extra processing cost probably won't be noticeable. Michael Kay > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of > Kyle Himmerick > Sent: 27 October 2003 05:48 > To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Generic sort using multiple columns > > > Hello, > I need to allow users to sort data by multiple columns (primary, > secondary, tertiary etc). > > I'm trying to keep it as generic as possible. For example, the user > might choose to sort by column 1 asc, column 2 desc and > column 3 asc. > I'll handle this as a list control where they can change the > sort order > on each column (ie 1st click sorts column asc, 2nd click sorts column > desc, 3rd click removes sort without affecting any other columns that > may be sorted). So precedence will be in the order the > elements appear > (or left to right when displayed). > > I am already doing a dynamic sort using: > > <xsl:for-each select="DATA"> > <xsl:sort select="*[name()=$orderby]" order="{$order}" > data-type="{$ordertype}"/> > <xsl:apply-templates select="."/> > </xsl:for-each> > > My web page is passing in these three variables orderby, order and > ordertype. This works well but does not meet my above requirement. > > I can fight with constructing parameters to be passed into the > stylesheet, but I'm stuck as to how I can actually apply them. > > sample xml format: > <LIST> > <DATA> > <firstName>Kyle</firstName> > <phone>123.313.1234</phone> > <job>grunt</job> > </DATA> > <DATA> > <firstName>Joe</firstName> > <phone>312.123.1234</phone> > <job>boss</job> > </DATA> > </LIST> > > maybe > $asc = 'firstName, job' > $desc = 'phone' > > - or - > > $orderby=firstName, phone, job > $order=asc,desc,asc > $type=text,number,text > > Has anyone seen this done or have any ideas? > > Thanks for your help. > -Kyle > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Generic sort using multiple c, Kyle Himmerick | Thread | Re: [xsl] Generic sort using multip, Kyle Himmerick |
[xsl] Generic sort using multiple c, Kyle Himmerick | Date | [xsl] first occurence of a string v, james walker |
Month |