WEB开发网
开发学院软件开发C语言 C#发现之旅 - 高性能ASP.NET树状列表控件(中) 阅读

C#发现之旅 - 高性能ASP.NET树状列表控件(中)

 2010-09-30 21:03:16 来源:WEB开发网   
核心提示: 编制袁永福2008-1-29--><xsl:outputmethod="html"indent="no"/><!--*主模板,为XSLT转换的入口点--><xsl:templatematch="/*"

编制 袁永福 2008-1-29

 -->
   <xsl:output method="html" indent="no" />
   <!-- ***************** 主模板,为XSLT转换的入口点 ******************** -->
   <xsl:template match="/*">
      ------------- 主模板的内容 -----------------------
   </xsl:template>
   <!-- *******************  输出一个树状列表节点 *************************** -->
   <xsl:template name="TreeNode">
      -------------- 子模板的内容 ----------------------
   </xsl:template>
</xsl:stylesheet>

这里使用了xsl:output指令

<xsl:output method="html" indent="no" />

表明此XSLT转换生成是HTML代码,而且不进行缩进处理。

该XSLT模板文档定义了两个XSLT模板,一个是默认模板,还有一个名为“TreeNode”的子模板。默认模板内容为

<!-- ***************** 主模板,为XSLT转换的入口点 ******************** -->
<xsl:template match="/*">
  <!-- 定义一个NodeID变量,表示当前节点的编号 -->
  <xsl:variable name="NodeID">
     <xsl:choose>
        <xsl:when test="string-length( @RootID ) > 0 ">
           <xsl:value-of select="@RootID" />
        </xsl:when>
        <xsl:when test="string-length(ID) > 0">
           <xsl:value-of select="ID" />
        </xsl:when>
        <xsl:otherwise>
           <xsl:value-of select="generate-id( . ) " />
        </xsl:otherwise>
     </xsl:choose>
  </xsl:variable>
  <!-- 若有子节点则显示子节点 -->
  <table border="0" cellspacing="0" cellpadding="0">
     <xsl:attribute name="id">
        <xsl:value-of select="concat( $NodeID , '_table' ) " />
     </xsl:attribute>
     <xsl:for-each select="Node">
        <xsl:call-template name="TreeNode">
           <xsl:with-param name="Level">1</xsl:with-param>
        </xsl:call-template>
     </xsl:for-each>
  </table>
</xsl:template>

主模板是XSLT转换的入口处,在主模板中,首先创建了一个名为NodeID的XSLT参数,若定义了树状列表的根节点则创建table元素,然后循环遍历所有的根节点,并对每一个列表节点元素调用TreeNode模板,并传递了一个名为Level的值为1的参数,表示生成的节点层次数。这样就开始了递归创建HTML元素的过程。

上一页  4 5 6 7 8 9 

Tags:发现 之旅 高性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接