|
Subject: Scripting on XSL elements in ie5 after page is loaded From: "Fillhart, Dana" <dana@xxxxxxxxxxxx> Date: Mon, 22 Feb 1999 15:05:50 -0500 |
I'm trying to allow somebody to sort a table of data based upon a column
they choose.
Let's use the books example on Microsoft's site:
<?xml version="1.0"?>
<?xml:stylesheet type="text/xsl" href="bookstyle.xsl"?>
<books>
<book>
<title>Pierre: The Ambiguities</title>
<author>Herman Melville</author>
<price>9.99</price>
</book>
<book>
<title>Heart of Darkness</title>
<author>Joseph Conrad</author>
<price>12.99</price>
</book>
<book>
<title>Arrowsmith</title>
<author>Sinclair Lewis</author>
<price>8.99</price>
</book>
<book>
<title>Oedipus Rex</title>
<author>Sophocles</author>
<price>8.99</price>
</book>
<book>
<title>The Secret Sharer and Other Stories</title>
<author>Joseph Conrad</author>
<price>13.99</price>
</book>
<book>
<title>The Republic</title>
<author>Plato</author>
<price>12.99</price>
</book>
<book>
<title>The Republic</title>
<author>Plato</author>
<price>15.99</price>
</book>
<book>
<title>Pragmatism</title>
<author>William James</author>
<price>15.99</price>
</book>
</books>
The bookstyle.xsl stylesheet lays out the table like this:
<?xml version="1.0"?>
<root xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<head>
<title>Book table example</title>
</head>
<html>
<body>
<DIV>
<input id="btnAscending" type="button" value="Sort Ascending"/>
<input id="btnDescending" type="button" value="Sort
Descending"/><br/>
<TABLE style="table-layout:fixed" BORDER="2" CELLSPACING="2">
<col width="200"/>
<col width="200"/>
<col width="200"/>
<THEAD>
<TH id="thAuthor">AUTHOR</TH>
<TH id="thTitle">TITLE</TH>
<TH id="thPrice">PRICE</TH>
</THEAD>
<xsl:for-each select="books/book" order-by="+author">
<TR>
<TD>
<i>
<SPAN id="spnAuthor" style="font-weight: bold;">
<xsl:value-of select="author"/>
</SPAN>
</i>
</TD>
<TD>
<SPAN id="spnTitle">
<xsl:value-of select="title"/>
</SPAN>
</TD>
<TD>
<SPAN id="spnPrice">
<xsl:value-of select="price"/>
</SPAN>
</TD>
</TR>
</xsl:for-each>
</TABLE>
</DIV>
<input id="btnAuthor" type="button" value="Author"/>
<input id="btnTitle" type="button" value="Title"/>
<input id="btnPrice" type="button" value="Price"/><br/>
</body>
</html>
</root>
Now, the trick is, when the user clicks on one of the buttons at the bottom,
I want to, *without reloading the page*, reapply the for-each, and arrange
the table columns based upon the one they chose. Or if they click one of
the ascending/descending buttons, the table data will be reordered
accordingly (again without having the page reload). I've tried <xsl:script>
blocks, but ie5's parser complains that "<xsl:script> keyword cannot be used
here" (or something to that effect). I can do normal <script>, but I don't
know how to programmatically access the xsl elements or methods.
Any ideas on how to do what I want to do? I do NOT want to create separate
stylesheets for each possible permutation the user may select, then reload
the page; that's rediculous, especially if something changes, like a new
child element is later introduced in the data and must be sorted upon.
Thanks!
--
Dana Fillhart
Software Engineer
Proxicom, Inc.
www.proxicom.com
(212) 363-6580 ext. 3047
(212) 363-6522 (fax)
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Q: Attribute value templates, G. Ken Holman | Thread | Wierd IE5B2, Wendy Cameron |
| Q: Attribute value templates, Michael J. Koehrsen | Date | RE: CSS/XML in IE5b2 - generated co, Chris Wilson |
| Month |