在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

基于XML的下拉菜單(源代碼)

基于XML的下拉菜單(源代碼)

更新時(shí)間:2022-04-29 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

以前曾看到過有人寫出這樣的菜單,可是自己卻沒有源代碼,放假的時(shí)候,閑著沒事,就自己寫了一個(gè),并把它制成了服務(wù)器控件。這里我用到了六個(gè)文件,當(dāng)然你可以把某些文件合并,以減少耦合,我的用意是將各種不同的代碼分離。在寫的過程中,遇到了很多問題,不知道大家又沒有碰到過,希望各位注意。好了,下面切入正題!
1、服務(wù)器控件制作:基于Xml的下拉菜單
xml文件為:
<?xml version="1.0" encoding="utf-8" ?>
<!--
服務(wù)端控件 - 數(shù)據(jù)文件
基于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文件為:其中引用一個(gè)腳本文件和一個(gè)樣式表文件
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
//注意:由.NET自動(dòng)產(chǎn)生的xsl命名空間在運(yùn)行的時(shí)候會(huì)產(chǎn)生錯(cuò)誤,應(yīng)將命名空間改為上面所示。
<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">
<xsl:value-of select="@url" />
</xsl:attribute>
<xsl:value-of select="@title" />
</a>
</td></tr>
</xsl:for-each>

</td></tr>
</xsl:for-each>

</xsl:template>
</xsl:stylesheet>
JS文件:
document.write('<style type="text/css">');
if(window.screen.width < 1024)
document.write('body,table,select,input{font:13px "宋體"}');
else
document.write('body,table,select,input{font:14px "宋體"}');
document.write('</style>');

var ActiveMenu,ActiveBtn,SelectBtn;
ActiveMenu = null;
ActiveBtn = null;
SelectBtn = null;
function ShowHide(btn,menu)
{//check if click on button itself
if(ActiveMenu != null && ActiveMenu != menu)
ActiveMenu.className = "MenuHide";
if(SelectBtn != null && SelectBtn != btn)
SelectBtn.className = "btnNormal";
//make show/hide
if (menu.className == "MenuHide")
{
menu.className = "MenuShow";
btn.className = "btnDown";
ActiveMenu = menu;
SelectBtn = btn;
ActiveBtn = null;
}
else
{
menu.className = "MenuHide";
btn.className = "btnNormal";
ActiveMenu = null;
SelectBtn = null;
}
}
function ClearMenu()
{
if(ActiveBtn != null)
{
ActiveBtn.className = "BtnNormal";
ActiveBtn = null;
}
}
function MakeBtn(btn)
{
if(SelectBtn == btn) return;
if(ActiveBtn != null)
ActiveBtn.className = "BtnNormal";
btn.className = "BtnUp";
ActiveBtn = btn;
}
CSS文件:
A:link
{
COLOR: #ff9900;
TEXT-DECORATION:none
}
A:visited
{
COLOR: #cc6600;
TEXT-DECORATION: none
}
A:active
{
}
A:hover
{
COLOR: #cc6600;
TEXT-DECORATION: underline
}
.allbutton
{
}
.btnNormal {BACKGROUND-COLOR:#3366cc; BORDER-BOTTOM: 2px solid #000066; BORDER-LEFT: 1px solid
#33ccff; BORDER-RIGHT: 2px solid #000066; BORDER-TOP: 1px solid #33ccff; MARGIN-BOTTOM: 0px;
MARGIN-TOP: 0px; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px;cursor:hand;font: bold;}
.btnUp {BACKGROUND-COLOR: #3366cc; BORDER-BOTTOM: 1px solid #003399; BORDER-LEFT: 1px solid
#99ccff; BORDER-RIGHT: 1px solid #003399; BORDER-TOP: 1px solid #99ccff; MARGIN-BOTTOM: 1px;
MARGIN-TOP: 1px; PADDING-BOTTOM: 1px; PADDING-LEFT: 2px;cursor:hand; color : yellow;
font-style:normal; font-variant:normal; font-weight:bold }
.btnDown{BACKGROUND-COLOR: #3366cc; BORDER-BOTTOM: 1px solid #003399; BORDER-LEFT: 1px solid
#99ccff; BORDER-RIGHT: 1px solid #003399; BORDER-TOP: 1px solid #99ccff; MARGIN-BOTTOM: 1px;
MARGIN-TOP: 1px; PADDING-BOTTOM: 1px; PADDING-LEFT: 2px;cursor:hand; color : yellow;
font-style:normal; font-variant:normal; font-weight:bold }
.MenuHide {display:none}
.MenuShow {}
.SubMenuItem {background-color: #FFFFCC}
類文件:
using System;
using System.Web;
using System.Web.UI.HtmlControls;
using System.Web.UI;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
namespace Wrox.ThePhile.Web.Controls.Server{
public class Navigator: System.Web.UI.Control{
string transformFilePath;
string sourceFilePath;
public string TransformFile{
//屬性定義
get {return transformFilePath;}
set {transformFilePath = value;}}
public string SourceFile{
get {return sourceFilePath;}
set {sourceFilePath = value;}}
protected override void OnInit( EventArgs e ){
base.OnInit( e );}
//調(diào)用Render方法(System.Web.UI.Control的基本方法)聲稱代表控件的HTML。
protected override void Render( HtmlTextWriter writer ){
XPathDocument xdoc = new XPathDocument(Context.Server.MapPath(sourceFilePath));
//實(shí)例化XslTransform對(duì)象
XslTransform xslt = new XslTransform();
xslt.Load( Context.Server.MapPath( transformFilePath ) );
//將轉(zhuǎn)換結(jié)果輸出到HtmlTextWriter流
xslt.Transform( xdoc, null, writer );}}}
引用頁面的后臺(tái)編碼:
//下面代碼將自動(dòng)生成
protected Wrox.ThePhile.Web.Controls.Server.Navigator MenuNav;
引用頁面的前臺(tái)編碼:注意,此處需引用該程序集,Assembly為引用程序集的名稱。
<%@Register TagPrefix="Wrox" Namespace="Wrox.ThePhile.Web.Controls.Server" Assembly="ThePhile" %>
<Wrox:Navigator id="MenuNav" SourceFile="Config/NavMenu.xml" TransformFile="Transforms/NavMenu.xslt" runat="server" />

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 91蝌蚪视频在线| 五月六月丁香婷婷| 熟女熟妇伦久久影院毛片一区二区| 欧美 日本 亚洲| 香港三级日本三级a视频| 在线观看日本www| 国产乱码一区二区三区四区| 一级片视频免费观看| 妺妺窝人体色www看人体| 中文字幕第38页| 国产小视频精品| av中文字幕网址| 日韩高清在线一区二区| 小早川怜子一区二区三区| 午夜激情av在线| 91精产国品一二三产区别沈先生| 欧美成人三级在线播放| www.亚洲自拍| 日韩中文字幕在线免费| 日本在线观看a| 天天干天天玩天天操| 91亚洲免费视频| 妞干网这里只有精品| 成人性免费视频| 色婷婷综合久久久久中文字幕| 中日韩av在线播放| 久操网在线观看| 天天爽人人爽夜夜爽| 激情成人在线观看| 男女高潮又爽又黄又无遮挡| 欧美大尺度做爰床戏| 国产91在线亚洲| 精品久久久久久中文字幕2017| 污污视频在线免费| 国产一区二区三区精彩视频 | 国产一级片中文字幕| 蜜桃传媒一区二区三区| 亚洲天堂国产视频| 超碰成人免费在线| 亚洲精品第三页| 久久久久久久久久久久久国产精品| 91亚洲精品久久久蜜桃借种| 免费无码毛片一区二三区| 亚洲视频一二三四| 秋霞无码一区二区| 黄色三级视频片| 久久免费一级片| 欧美精品色婷婷五月综合| 91极品视频在线观看| 国产美女主播在线| 欧美一级特黄aaa| 国产一级不卡毛片| 免费毛片小视频| 91黄色在线看| 一级特黄妇女高潮| 色天使在线观看| 成年网站在线播放| 免费观看成人网| 麻豆av免费在线| 丝袜老师办公室里做好紧好爽| 日本黄xxxxxxxxx100| 亚洲视频在线不卡| 91精产国品一二三产区别沈先生| 99精品视频国产| av天堂永久资源网| 波多野结衣乳巨码无在线| 无码人妻少妇伦在线电影| 一级特黄妇女高潮| www.国产亚洲| 妺妺窝人体色www看人体| 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 国产精品久久成人免费观看| 怡红院亚洲色图| 国产精品嫩草影视| 超碰免费在线公开| 免费极品av一视觉盛宴| 加勒比成人在线| 国产高清精品在线观看| 91国视频在线| 国产精品一区二区小说| 日韩va在线观看| 天天想你在线观看完整版电影免费| 男女激烈动态图| 国产免费黄色一级片| 国产成人无码精品久久久性色| 日韩一级片播放| 亚洲天堂一区二区在线观看| 男人添女人下部视频免费| 国产精品333| 99re精彩视频| 国产免费xxx| 国产成人亚洲精品无码h在线 | 亚洲一区二区图片| 国产欧美日韩小视频| 日韩a在线播放| 亚洲精品国产一区二区三区| 天堂8在线天堂资源bt| 欧美 国产 日本| 日本一区二区免费高清视频| 国产人妻777人伦精品hd| 欧美黄色性生活| 久久人人爽人人爽人人av| 日韩一级片播放| 精品人妻人人做人人爽| 欧美婷婷精品激情| 18禁免费观看网站| 在线免费观看av网| 男女视频一区二区三区| 成人在线免费高清视频| 91蝌蚪视频在线观看| 男人天堂a在线| 91福利免费观看| 久久精品网站视频| 免费看黄在线看| 蜜臀av.com| 91福利免费观看| av免费网站观看| 免费拍拍拍网站| 蜜臀av.com| 亚洲一级片av| 天堂中文av在线| 亚洲一级片免费| 丁香婷婷激情网| 蜜臀久久99精品久久久酒店新书| 欧美一级特黄aaaaaa在线看片| 亚洲少妇久久久| 国产97色在线 | 日韩| 国产精品无码一区二区在线| 久久av综合网| 97超碰在线人人| 欧美视频在线观看网站| 97超碰国产精品| av网站手机在线观看| 日本大片免费看| 人人妻人人澡人人爽欧美一区| 亚洲五码在线观看视频| 麻豆md0077饥渴少妇| eeuss中文| 免费看欧美黑人毛片| 成人在线视频一区二区三区| 免费人成在线观看视频播放| 又大又硬又爽免费视频| 国产h视频在线播放| 免费黄色特级片| 久久国产精品国产精品| 制服丝袜中文字幕第一页| 中文字幕资源在线观看| 色撸撸在线观看| 亚洲精品蜜桃久久久久久| 国产中文字幕二区| 丝袜制服一区二区三区| 一级黄色高清视频| 国产精品久久久久9999爆乳| www.com毛片| 国产乱码一区二区三区四区| 国产激情片在线观看| 国产午夜大地久久| xxxx一级片| 欧美日韩午夜爽爽| 干日本少妇首页| 手机在线国产视频| av女优在线播放| 激情五月俺来也| 国产天堂视频在线观看| 国产精品拍拍拍| 日本免费a视频| 狠狠操狠狠干视频| 亚洲人精品午夜射精日韩| 国产成人黄色网址| www.射射射| 永久免费黄色片| 亚洲中文字幕久久精品无码喷水| 性生活免费观看视频| 可以在线看的黄色网址| av 日韩 人妻 黑人 综合 无码| 波多野结衣50连登视频| 成人午夜免费剧场| 成人性生交免费看| 欧美 日韩 亚洲 一区| 中文字幕55页| 国产成人亚洲精品无码h在线| 国产免费xxx| 亚洲美女性囗交| 日本熟妇人妻中出| 777精品久无码人妻蜜桃| 国产xxxxhd| 中文字幕一区二区在线观看视频| 黄色一级一级片| 日韩av综合在线观看| 奇米777四色影视在线看| 午夜影院免费观看视频| 午夜免费福利视频在线观看| 国产亚洲综合视频| 男人添女人下部视频免费| 大地资源第二页在线观看高清版| 亚洲18在线看污www麻豆| 日本 片 成人 在线| 五月婷婷丁香综合网| 亚洲欧美另类动漫| 日本久久精品一区二区|