在线看毛片视频-国产免费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>
  • 在线观看18视频网站| www.xxx麻豆| 国产成人亚洲精品无码h在线| www.午夜色| 日韩第一页在线观看| 天天做天天干天天操| 亚洲欧洲日本精品| 日韩av一卡二卡三卡| 中文字幕一区久久| 欧美一级小视频| 91制片厂免费观看| 成年人深夜视频| 久久天天东北熟女毛茸茸| 黄瓜视频免费观看在线观看www| 第一区免费在线观看| 三级性生活视频| 97超碰在线视| 亚洲 欧美 日韩 国产综合 在线| av动漫在线看| 日韩一级免费片| 三年中文高清在线观看第6集| 国产精品88久久久久久妇女| 成年女人18级毛片毛片免费 | 浴室偷拍美女洗澡456在线| www.午夜色| 国产成人无码精品久久久性色| 国产精品亚洲a| 久久久精品高清| 国产xxxx振车| www.xxx亚洲| 国产又粗又大又爽的视频| 欧美无砖专区免费| 中文字幕国产传媒| 福利视频一二区| 色婷婷成人在线| 男人添女荫道口女人有什么感觉| 国产xxxxx视频| 国产性生活免费视频| 国产免费视频传媒| 欧美做受777cos| 三上悠亚在线一区| 青青青国产在线观看| 亚洲人视频在线| 免费看日本毛片| 福利在线小视频| www.99av.com| www.com毛片| av日韩在线看| 中文字幕一区二区三区四| 免费在线观看亚洲视频 | 9久久9毛片又大又硬又粗| 久久久久久综合网| 人人干人人视频| 国产毛片视频网站| 国产一级不卡视频| caoporm在线视频| 91女神在线观看| 99视频免费播放| 久久美女福利视频| 黄色国产一级视频| 日韩一级性生活片| 欧洲精品在线播放| 300部国产真实乱| 大桥未久一区二区| 九九久久九九久久| www.午夜色| 99亚洲国产精品| 中文字幕乱码免费| 少妇久久久久久被弄到高潮| 午夜免费视频网站| 91传媒免费视频| 4444亚洲人成无码网在线观看| 日本一二三区视频在线| 国产一级大片免费看| 97免费视频观看| 欧美亚洲日本一区二区三区| 男人的天堂狠狠干| 777久久久精品一区二区三区| 国产av天堂无码一区二区三区| 国产www免费| 日日碰狠狠躁久久躁婷婷| 国产精品69页| 国产精品v日韩精品v在线观看| 日韩中文字幕a| 男女h黄动漫啪啪无遮挡软件| 国产一区一区三区| 欧美亚洲精品一区二区| 国产视频一区二区三区在线播放| 91制片厂毛片| 手机看片日韩国产| 国内性生活视频| 色综合色综合色综合色综合| 在线观看视频黄色| 欧美日韩在线不卡视频| 国产九九在线视频| www.成年人视频| 麻豆一区二区三区视频| 黄色小视频大全| 亚洲精品乱码久久久久久自慰| 热久久久久久久久| 人妻熟妇乱又伦精品视频| 中文字幕第21页| 六月婷婷激情综合| 亚洲小视频网站| 国产69精品久久久久久久| 中文字幕av专区| 精品少妇一区二区三区在线| 亚洲理论中文字幕| 日韩毛片在线免费看| 成人免费在线视频播放| av中文字幕网址| 国产精品免费观看久久| 精品视频在线观看一区二区| av网站在线不卡| 国产一区二区三区精彩视频| a级黄色片网站| 免费精品99久久国产综合精品应用| 国产日韩av网站| 国产精品va在线观看无码| 亚洲18在线看污www麻豆| 亚洲爆乳无码专区| 妞干网在线观看视频| youjizz.com在线观看| 看看黄色一级片| 色戒在线免费观看| 国产免费999| 中文字幕在线导航| 91av俱乐部| 国产一区二区在线免费播放| 中文字幕乱码人妻综合二区三区| 黄色成人在线看| 欧美成人xxxxx| 欧美日韩亚洲一| 国产成人精品无码播放| 国产精品第12页| 蜜桃免费在线视频| 国产区二区三区| 亚洲色图欧美自拍| 国产精品一二三在线观看| 一区二区三区日韩视频| 日韩国产精品毛片| av动漫在线播放| 欧美精品久久久久久久免费| 午夜精品久久久久久久无码| 777av视频| 天天影视综合色| 国产精品久久久久久久av福利| 6080国产精品| 国产二区视频在线| 精品视频无码一区二区三区| 国内外成人免费在线视频| 黄色a级三级三级三级| 乱熟女高潮一区二区在线| 黄色大片在线免费看| 日日碰狠狠丁香久燥| 天堂av8在线| 国产爆乳无码一区二区麻豆| av动漫在线看| 国产精品久久久久久9999| www.欧美黄色| 日本激情视频在线| 亚洲国产一二三精品无码| 欧美 激情 在线| 黄色一级视频播放| 激情综合网俺也去| 在线观看成人免费| 激情综合网婷婷| 日本xxxxx18| 午夜免费福利在线| 青春草国产视频| av在线网址导航| 337p粉嫩大胆噜噜噜鲁| 中文字幕在线视频一区二区三区| 欧美图片激情小说| 国产毛片久久久久久| 欧美变态另类刺激| 麻豆传媒网站在线观看| 在线观看的毛片| 精品国产免费av| www.国产在线播放| 国产欧美自拍视频| 午夜剧场高清版免费观看| 免费黄色福利视频| 国产91在线亚洲| 黄色三级视频在线播放| 婷婷丁香激情网| 999精品网站| 国产1区2区在线| 女女同性女同一区二区三区按摩| 九九热精品在线播放| 国产尤物av一区二区三区| 欧在线一二三四区| 国产精品成人久久电影| 欧美一级爱爱视频| www.久久com| 吴梦梦av在线| 一本色道久久88亚洲精品综合| 日韩av卡一卡二| 99热一区二区| 中文字幕国产高清|