分页问题终于解决!

// 在此处放置用户代码以初始化页面
   XmlDocument xdoc=new XmlDocument();
   xdoc.Load(Server.MapPath("db.xml"));

   // 创建一个XslTransform对象并导入XSL文件
   XslTransform xslt=new XslTransform();
   xslt.Load(Server.MapPath("del.xsl"));

   XsltArgumentList argsList = new XsltArgumentList();
   //Retrieve the pageNumber from querystring
   int pageNumber = Convert.ToInt32(Request.QueryString["pagenumber"]);
   //Add the required parameters to the XsltArgumentList object
   argsList.AddParam("recordsPerPage","",10);//每页显示参数
   argsList.AddParam("pageNumber","",pageNumber);   
   argsList.AddParam("recordCount","",77);    
   //Invoke the transform method, passing in the XsltArgumentList object   
   xslt.Transform(xdoc,argsList,Response.Output);
上面是page_load
xsl这样写:
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<!--Set the paging characteristics - number of records per page and the page number and record count-->
<!-- Set the number of records per page-->
<xsl:variable name="recordsPerPage" select="77" />
<!-- Page Number field -->
<xsl:variable name="pageNumber" select="0" />
<!--Record Count Field-->
<xsl:variable name="recordCount" select="77" />
<xsl:template match="/">

<HTML>
<HEAD>
<TITLE>文件软件留言系统>>asp.net+xml构成!</TITLE>
</HEAD>
<BODY>

<span align="center" style="color:Blue;background-color:White;font-weight:bold;height:25px;width:634px;Z-INDEX: 102; LEFT: 203px; POSITION: absolute; TOP: 69px"> 文华软件留言系统ASP.NET+XML版2.0
</span>

<table style="Z-INDEX: 101; LEFT: 171px; WIDTH: 501px; POSITION: absolute; TOP: 125px; HEIGHT: 322px" border="1" cellSpacing="1" cellPadding="1">
<center>
 <xsl:for-each select="//guest">
<!--this performs the output in table format - and shows only that many records specified in the recordcount variable -->

<xsl:if test="position() &gt; $recordsPerPage * number($pageNumber) and position() &lt;= number($recordsPerPage * number($pageNumber) + $recordsPerPage)">
  <!-- Each record on a seperate row -->
 
<xsl:element name="tr">

 <xsl:element name="td">       <xsl:value-of select="Name" />
 </xsl:element>

 <xsl:element name="td">
 <xsl:value-of select="Name" />
 </xsl:element>

 <xsl:element name="td">
<xsl:attribute name="align">center</xsl:attribute>
 <xsl:value-of select="Country" />
 </xsl:element>
 
<xsl:element name="td">
 <xsl:attribute name="align">center</xsl:attribute>
 <xsl:value-of select="Email" />
 </xsl:element>
 
<xsl:element name="td">
 <xsl:attribute name="align">center</xsl:attribute>
 <xsl:value-of select="Comments" />
 </xsl:element>

</xsl:element>
</xsl:if>
</xsl:for-each>
</center>
</table>
<!-- Start Of Show previous/next page links-->
<!-- Show the previous page, only if pageNumber>0  -->
<span style="Z-INDEX: 101; LEFT: 261px; WIDTH: 501px; POSITION: absolute; TOP: 500px; HEIGHT: 62px">
<xsl:if test="$pageNumber &gt; 0">
<xsl:element name="a">
<xsl:attribute name="href">?pagenumber=<xsl:value-of select="number($pageNumber)-1" />
 </xsl:attribute>         &lt;&lt; 上一页
 </xsl:element>        
 &#160; &#160; &#160; &#160;
</xsl:if>

<!-- Next page, do not show when at end() of listing -->
<xsl:if test="($recordCount - ((1+number($pageNumber)) * $recordsPerPage))&gt; 0">
 <xsl:element name="a">
<xsl:attribute name="href">?pagenumber=<xsl:value-of select="number($pageNumber)+1" />
  </xsl:attribute>        下一页 &gt;&gt;
 </xsl:element>
 </xsl:if>
 <!-- End Of Show previous/next page links-->
</span>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>


  但是有一个毛病就是.他不知道最后一页!老是显示nextpage??

posted on 2004-08-03 11:46  kary  阅读(612)  评论(0编辑  收藏  举报

导航