仅用xsl和asp实现分页功能 

2005/8/27 21:55:02


阅读全文(3568) | 回复(1) | 编辑 | 精华

asp文件大致结构:<%@ Language=VBScript %><!-- #include file=include/lib.asp --><% cc=server.MapPath("trans.xml")set source=server.CreateObject("msxml2.domdocument")source.async=falsesource.load(cc)xslfile=server.MapPath("index.xsl")set style=server.CreateObject("msxml2.domdocument")style.async=falsestyle.load(xslfile)'Response.write source.transformNode(style)Response.write gb_html(source.transformNode(style))Response.End %>------------------------------------load进来的xml数据是这样的:<?xml version="1.0" encoding="GB2312" ?> <root><function><PO>里面的标签在后面的xsl文件里被"<xsl:for-each>"</PO><PO>……………………</PO><PO>……………………</PO><PO>……………………</PO></function></root>------------------------------------xsl文件的内容:<?xml version="1.0" encoding="GB2312"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:include href="include/ydzhongxin.xsl"/><!--  嵌入头模板,尾模板  --><xsl:param name="yd">7</xsl:param><!--  调用二级导航条所用参数 --><xsl:param name="page">    <xsl:value-of select="count(//PO)"/></xsl:param><!-- 定义根模板  --><xsl:template match="/"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><link rel="stylesheet" type="text/css" href="include/style.css"/><title>结果列表</title></head><body leftMargin="0" topMargin="0"><xsl:call-template name="ydtitle"/>        <div align="center">        <xsl:apply-templates select="root/function"/>        <!--  匹配function模板  -->        </div><xsl:call-template name="end"/></body></html></xsl:template><!--  定义function模板  --><xsl:template match="function"><!-- ---------------翻页链接开始----------- --><xsl:variable name="pagesize">5</xsl:variable><!--  是分页参数 --><xsl:choose><xsl:when test="/root/session/page[text()!='']"><!-- 进入一级choose的一个when条件分支!!!!!-------------进入此分支,证明用户已有翻页操作-------------- --><xsl:variable name="page"><xsl:value-of select="/root/session/page"/></xsl:variable><table border="0" cellpadding="2" cellspacing="0" width="630">    <tr>        <td align="right">        <!-- 进入二级choose!!! -->        <xsl:choose>        <!-- ①id小于等于0的情况,显示最后一页。-->        <xsl:when test="$pid<1">        <a><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="count(//PO)"/></xsl:attribute>[ 首 ]</a>        <a title="前一页"><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="$size*2"/></xsl:attribute>[ <<< ] </a>        <a title="后一页">[ >>> ] </a>        <a>[ 尾 ]</a>        </xsl:when>        <!-- ②id位于[0~pagesize]之间的情况,前页正常,后页无。 -->        <xsl:when test="$pid<($size + 1) and $pid>0">        <a><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="count(//PO)"/></xsl:attribute>[ 首 ]</a>        <a title="前一页"><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="$pid+$size"/></xsl:attribute>[ <<< ] </a>        <a title="后一页">[ >>> ] </a>        <a>[ 尾 ]</a>        </xsl:when>        <!-- ③id位于[pagesize~count]之间的情况,前页无,后页正常。 -->        <xsl:when test="$pid<count(//PO) and $pid>(count(//PO)-$size)">        <a><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="count(//PO)"/></xsl:attribute>[ 首 ]</a>        <a title="前一页"><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="count(//PO)"/></xsl:attribute>[ <<< ] </a>        <a title="后一页"><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="$pid - $size"/></xsl:attribute>[ >>> ] </a>        <a><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="$size"/></xsl:attribute>[ 尾 ]</a>        </xsl:when>        <!-- ④id等于count的情况,显示首页。 -->        <xsl:when test="$pid=count(//PO)">        <a>[ 首 ]</a>        <a title="前一页">[ <<< ] </a>        <a title="后一页"><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="count(//PO)-$size"/></xsl:attribute>[ >>> ] </a>        <a><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="$size"/></xsl:attribute>[ 尾 ]</a>        </xsl:when>        <!-- ⑤id大于count的情况,显示首页。 -->        <xsl:when test="$pid>count(//PO)">        <a>[ 首 ]</a>        <a title="前一页">[ <<< ] </a>        <a title="后一页"><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="count(//PO)-$size"/></xsl:attribute>[ >>> ] </a>        <a><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="$size"/></xsl:attribute>[ 尾 ]</a>        </xsl:when>        <!-- 正常情况 -->        <xsl:otherwise>        <a><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="count(//PO)"/></xsl:attribute>[ 首 ]</a>        <a title="前一页"><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="$pid + $size"/></xsl:attribute>[ <<< ] </a>        <a title="后一页"><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="$pid - $size"/></xsl:attribute>[ >>> ] </a>        <a><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="$size"/></xsl:attribute>[ 尾 ]</a>        </xsl:otherwise>        </xsl:choose>        <!-- ---------------------------------------- -->                    </td>                    </tr>                </table><br/>            <!-- ---------遍历符合要求的PO结点------------- -->            <xsl:for-each select="PO[position()<=$pid and position()>($pid - $size)]">                <xsl:sort select="PO_ID" order="descending" data-type="number"/>                <xsl:call-template name="PO"/>                <br/><br/><br/>            </xsl:for-each><!-- 退出一级choose的一个when条件分支!!!!! --></xsl:when><!-- ------------------用户直接进入的状态------------------ --><xsl:otherwise><!-- 进入一级choose的另一个when条件分支!!!!! --><table border="0" cellpadding="2" cellspacing="0" width="630"><tr><td align="right"><a>[ 首 ]</a><a title="前一页">[ <<< ] </a><a title="后一页"><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="$pid - $size"/></xsl:attribute>[ >>> ] </a><a><xsl:attribute name="href">search_jieguo.asp?id=<xsl:value-of select="$size"/></xsl:attribute>[ 尾 ]</a></td></tr></table><br/>            <xsl:for-each select="PO[position()<=$pid and position()>($pid - $size)]">                <xsl:sort select="PO_ID" order="descending" data-type="number"/>                <xsl:call-template name="PO"/>                <br/><br/><br/>            </xsl:for-each><!-- 退出一级choose的另一个when条件分支!!!!! --></xsl:otherwise></xsl:choose>        <!-- --------------翻页链接到此结束----------- -->        <br/>        <xsl:if test="count(//PO)=0">    <div align="center"><b>      <img src="images/msg2.gif" align="absmiddle"/>      </b><font color="#CC0000" face="楷体CS" size="3"><b>      没有符合当前条件的订单</b></font>       <a><xsl:attribute name="href">lkxx.asp?po_id=<xsl:value-of select="PO_ID"/></xsl:attribute></a>    </div>><br/><br/><input type="button" value="重新输入条件查询" onclick="location.href='search.asp'"/>        </xsl:if>    </xsl:template><!-- ------------------------------------------><xsl:template name="PO">  <table border="1" cellpadding="2" cellspacing="0" width="100%">    <tr>       <td nowrap="nowrap" width="70"> 号码</td>      <td nowrap="nowrap" width="110"> 名称</td>      <td nowrap="nowrap" width="110"> 日期</td>      <td nowrap="nowrap" width="110"> 人员</td>    </tr>    <tr><td nowrap="nowrap"> <xsl:value-of select="num"/></td><td nowrap="nowrap"> <xsl:value-of select="username"/></td><td nowrap="nowrap"> <xsl:value-of select="dt"/></td><td nowrap="nowrap"> <xsl:value-of select="men"/></td>    </tr>  </table></xsl:template></xsl:stylesheet> 引自:http://hi-blue.com/technology/article/1761.asp

Qr

Posted by Qr on 2005/8/27 21:55:02

回复:仅用xsl和asp实现分页功能

2006/5/19 20:49:34


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

你好!    我现在要实现将一副地图转化成svg格式的 图形数据在xml里,怎么利用xslt转化成svg格式呢 请教!!! wangjianredfox@163.com

wangjian(游客)

Posted by wangjian(游客) on 2006/5/19 20:49:34

» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.041 second(s), page refreshed 144761294 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号