使用XSLT NavigateUrl

时间:2011-08-12 17:31:59

标签: .net

我使用XSLT构建了一个菜单。这就是我所做的

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
 >
<xsl:output method="xml" indent="yes"/>

<xsl:template match="/Menus">
    <MenuItems>
        <xsl:call-template name="MenuListing" />
    </MenuItems>
</xsl:template>
<xsl:template name="MenuListing">
    <xsl:apply-templates select="Menu" />
</xsl:template>
<xsl:template match="Menu">
    <MenuItem>
        <!-- Convert Menu child elements to MenuItem attributes -->
        <xsl:attribute name="text">
            <xsl:value-of select="text"/>
        </xsl:attribute>

        <xsl:attribute name="NavigateUrl">
            <xsl:text>?Sel=</xsl:text>
            <xsl:value-of select="Url"/>
        </xsl:attribute>

        <!-- Call MenuListing if there are child Menu nodes -->
        <xsl:if test="count(Menu) > 0">
            <xsl:call-template name="MenuListing" />
        </xsl:if>
    </MenuItem>
</xsl:template>
</xsl:stylesheet>

然后在Code Behind中我会说它:

 if (Request.Params["Sel"] != null)
    Response.Redirect(Request.Params["Sel"], false);

问题是我的网址是〜/ Default.aspx。那么navigateurl会做什么呢?它附加了?Sel =到default.aspx的结尾。但我需要转发到〜/ folder1.aspx(这种类型的东西)。可以帮助转发Url到〜/ folder1.aspx

我在数据库中有一个字段,比如Url,它有folder1.aspx ..如果我可以使用它,请告诉我。

1 个答案:

答案 0 :(得分:0)

必须有一些JS或aspx代码,需要给出正确的答案。然而,如下所示给出绝对路径。

<xsl:text>/folder1.aspx?Sel=</xsl:text>