1、服务器控件制作:基于XML的下拉菜单
XML文件为:
<?XML version="1.0" encoding="utf-8" ?>
<!--
服务端控件 - 数据文件
基于XML的下拉菜单
作者:Terry Li(Icefox)
日期:2003年2月2日 Fab 2nd, 2003
-->
<NavMenu title="BenQ China">
<Category title="ETeam" id="btn1" menuitem="menu1" Down="ShowHide(btn1,menu1)" Over="MakeBtn(btn1)">
<MenuItem title="Link1" url="../ETeam/Default.ASPx" />
<MenuItem title="Link2" url="../ETeam/Default.ASPx" />
</Category>
<Category title="R1L-a" id="btn2" menuitem="menu2" Down="ShowHide(btn2,menu2)" Over="MakeBtn(btn2)">
<MenuItem title="Link3" url="../ETeam/Default.ASPx" />
<MenuItem title="Link4" url="../ETeam/Default.ASPx" />
<MenuItem title="Link5" url="../ETeam/Default.ASPx" />
</Category>
<Category title="R1L-b" id="btn3" menuitem="menu3" Down="ShowHide(btn3,menu3)" Over="MakeBtn(btn3)">
<MenuItem title="Link6" url="../ETeam/Default.ASPx" />
<MenuItem title="Link7" url="../ETeam/Default.ASPx" />
<MenuItem title="Link8" url="../ETeam/Default.ASPx" />
</Category>
</NavMenu>
xslt文件为:其中引用一个脚本文件和一个样式表文件
<?XML version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" XMLns:xsl="http://www.w3.org/1999/XSL/Transform">
//注意:由.NET自动产生的xsl命名空间在运行的时候会产生错误,应将命名空间改为上面所示。
<xsl:template match="/NavMenu">
<!--引用脚本文件和样式文件-->
<link rel="stylesheet" href=../../"Styles/NavMenu.CSS" />
<script language="javascript" src=../../"Styles/NavMenu.js"></script>
<table width="150" border="0" onMouseOut="ClearMenu()">
<tr><td><xsl:value-of select="@title" /></td></tr>
<!—选取根菜单
<xsl:for-each select="Category">
<tr><td class="btnNormal"><!—读取属性
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
<xsl:attribute name="onMouseDown"><xsl:value-of select="@Down" /></xsl:attribute>
<xsl:attribute name="onMouseOver"><xsl:value-of select="@Over" /></xsl:attribute>
<font color="white"><xsl:value-of select="@title" /></font>
</td></tr>
<tr class="MenuHide">
<xsl:attribute name="id"><xsl:value-of select="@menuitem" /></xsl:attribute>
<td>
<table>
<!—选取子菜单
<xsl:for-each select="MenuItem">
<tr><td>
<a>
<xsl:attribute name="href">
