[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Paging and Sorting

Subject: Re: Paging and Sorting
From: "Katie McNally" <kmcnally9@xxxxxxxxxxx>
Date: Fri, 19 Oct 2001 15:52:36 -0500
jsp table paging
I don't understand what you mean by:

Mark Nahabedian wrote:
Somehow, the template which outputs the information about a single
loan is being executed via another path than the one that wraps a
table around them.  This might be due to the built-in template which
matches any element and does <apply-templates/>.

I added explicit templates to shadow this built-in one for some of my
document's elements.

Another approach would be to use a mode for the path from your table
to your loan template and have another template for loan (without the
mode) that does nothing.

I want to be able to display 10 loans per page, allow the user to page between the returned loans, and sort the loans in the table by clicking on the column titles.


As I mentioned in my last email, when I click the column titles, sorting only occurs for the 10 loans listed on the page (and not all the loans returned).

Also, the loans that are not being displayed in the table of 10 loans are displayed as text above the table.

My XSL and XML are below:

XSL:

<?xml version='1.0'?>
<!-- File sampleLoanSearchLC.xsl-->
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>


<xsl:param name="column">
</xsl:param>
<xsl:param name="lowerLimit" select="1">
</xsl:param>
<xsl:param name="upperLimit" select="10">
</xsl:param>


<xsl:variable name="counter"> <xsl:value-of select="count(ReturnResultSet/LoanSearchSet/Loan)"/> </xsl:variable>

<table>


<tr>


<td>
<a href="/loans/SearchResults.jsp?{'sort=LoanId&amp;upperLimit=10&amp;action=None'}{'&amp;counter='}{$counter}"><b>Loan Number</b></a>
</td>


<td>

<a href="/loans/SearchResults.jsp?{'sort=LastName&amp;upperLimit=10&amp;action=None'}{'&amp;counter='}{$counter}"><b>Name</b></a>
</td>


</tr>

<xsl:apply-templates select="ReturnResultSet/LoanSearchSet/Loan">
<xsl:sort select="LoanId[$column = 'LoanId'] | LoanBorrowerSet[$column = 'LastName']/Borrower/LastName" />
</xsl:apply-templates>


</table>

<table>


<tr>


<td>
<a href="/loans/SearchResults.jsp?sort={$column}&amp;upperLimit={$upperLimit}&amp;action=First&amp;counter={$counter}"><b>First Page</b></a>
</td>


<td>
<xsl:if test="$lowerLimit &gt; 1">
<a href="/loans/SearchResults.jsp?sort={$column}&amp;upperLimit={$upperLimit}&amp;action=Previous&amp;counter={$counter}"><b>Previous Page</b></a>
</xsl:if>
</td>
<td>
<xsl:if test="$counter &gt; $upperLimit">
<a href="/loans/SearchResults.jsp?sort={$column}&amp;upperLimit={$upperLimit}&amp;action=Next&amp;counter={$counter}"><b>Next Page</b></a>
</xsl:if>
</td>


<td>

<a href="/loans/SearchResults.jsp?sort={$column}&amp;upperLimit={$upperLimit}&amp;action=Last&amp;counter={$counter}"><b>Last Page</b></a>

</td>

</tr>
</table>
</xsl:template>

<xsl:template match="ReturnResultSet/LoanSearchSet">

<xsl:apply-templates select="Loan[position() &gt;= $lowerLimit and position() &lt;= $upperLimit]"/>
</xsl:template>


<xsl:template match="Loan[position() &gt;= $lowerLimit and position() &lt;= $upperLimit]">


<tr> <td> <xsl:variable name="loanid"> <xsl:value-of select="LoanId"/> </xsl:variable> <a href="/loans/LoanSummary.jsp?{$loanid}"> <xsl:value-of select="LoanId"/> </a> </td>

 	  <td>
	  	  <xsl:for-each select="LoanBorrowerSet/Borrower">
		  <xsl:if test="Rank='1'">
		  <xsl:value-of select="LastName"/>
		  </xsl:if>
		  </xsl:for-each>
	  </td>



</tr>

</xsl:template>

</xsl:stylesheet>


XML:


<ReturnResultSet>
<LoanSearchSet>
<Loan>
<LoanId>123</LoanId>
<LoanBorrowerSet>
<Borrower>
<LastName>Smith</LastName>
</Borrower>
</LoanBorrowerSet>
</Loan>
<Loan>
<LoanId>456</LoanId>
<LoanBorrowerSet>
<Borrower>
<LastName>Jones</LastName>
</Borrower>
</LoanBorrowerSet>
</Loan>
<Loan>
<LoanId>789</LoanId>
<LoanBorrowerSet>
<Borrower>
<LastName>Stills</LastName>
</Borrower>
</LoanBorrowerSet>
</Loan>
...
</LoanSearchSet>
</ReturnResultSet>

-Katie

From: Mark Nahabedian <naha@xxxxxxxxxx>
Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re:  Paging and Sorting
Date: Thu, 18 Oct 2001 17:25:29 -0400

Katie McNally writes:
[...]
 > The data is being displayed above the table as:
 > 9823410-Mar-2001 New 10-Nov-1999 Max Lyons 23492 Jen Masters L 1 Josh
 > Masters P 2 300 S. State St. 140000.0 TRUE 7.10 13-Aug-2000

Somehow, the template which outputs the information about a single
loan is being executed via another path than the one that wraps a
table around them.  This might be due to the built-in template which
matches any element and does <apply-templates/>.

I had this problem with one of my stylesheets the other day.  I added
explicit templates to shadow this built-in one for some of my
document's elements.

Another approach would be to use a mode for the path from your table
to your loan template and have another template for loan (without the
mode) that does nothing.

The idea is to make sure that your loan elements are only processed
within the table you're generating and not any other way.

Sorry I can't give more detail, I don't have your previous messages
handy.




XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list




_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.