我找到Bind ASP.NET Menu control to XML問題有助於找到我的問題。現在我面臨的問題是我的菜單看起來像這樣(即使在主菜單的擴展連接到它的菜單。我希望它有一個普通的下拉,我能做到嗎?來自XML文件的ASP.NET菜單,下拉菜單在右邊,需要在
我XMLFILE附後。我試着刪除根標籤,但比它不是一個XML文件,它打破了代碼。
<?xml version="1.0" encoding="utf-8" ?>
<menu>
<menuItem>
<text>
<img align="middle" src="images/new.gif" width="32"
height="16" /> What's New? <img align="middle"
src="images/right.gif" width="16" height="16" />
</text>
<subMenu>
<menuItem>
<text>&nbsp;&nbsp;&nbsp;New Articles</text>
<url>/suboption1.1.html</url>
</menuItem>
<menuItem>
<text>&nbsp;&nbsp;&nbsp;New FAQs</text>
<commandName>NewFAQ</commandName>
</menuItem>
</subMenu>
</menuItem>
<menuItem>
<text>
<img align="middle" src="images/paw.gif" width="20"
height="16" /> Animal Facts <img align="middle"
src="images/right.gif" width="16" height="16" />
</text>
<url>/option2.html</url>
<subMenu>
<menuItem>
<text>
<![CDATA[<img align="middle" src="images/paw.gif"
width="20" height="16" /> Animal Facts <img
align="middle" src="images/right.gif" width="16"
height="16" />]]>
</text>
<url>/suboption2.1.html</url>
<subMenu>
<menuItem>
<text>Facts about Terriers</text>
<url>/suboption2.1.1</url>
</menuItem>
<menuItem>
<text>Facts about Beagles</text>
<url>/suboption2.1.2</url>
</menuItem>
<menuItem>
<text>Facts about Great Danes</text>
<url>/suboption2.1.3</url>
</menuItem>
<menuItem>
<text>Facts about Poodles</text>
<url>/suboption2.1.4</url>
</menuItem>
</subMenu>
</menuItem>
<menuItem>
<text>
&nbsp;&nbsp;&nbsp;Facts About
Goats
</text>
<url>/suboption2.2.html</url>
</menuItem>
<menuItem>
<text>
&nbsp;&nbsp;&nbsp;Facts About
Snakes
</text>
<url>/suboption3.2.html</url>
</menuItem>
</subMenu>
</menuItem>
<menuItem>
<text>
<img align="middle" src="images/email.gif" width="18"
height="18" /> Contact
</text>
<url>mailto:[email protected]</url>
</menuItem>
</menu>
添加代碼
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
MainMenu.DataSource = GetSiteMapDataSource("firtmenu.xml");
MainMenu.DataBind();
}
}
private XmlDataSource GetSiteMapDataSource(string siteMapFileName)
{
if (siteMapFileName != string.Empty)
{
XmlDataSource xmlSource = new XmlDataSource();
xmlSource.DataFile = siteMapFileName;
xmlSource.DataBind();
return xmlSource;
}
else
{ return null; }
}
爲什麼不用XMLReader解析XML並從中形成菜單? – CBRRacer
我想要一個快速解決方案。我發現這一點,它有這個問題。可以探索其他選項 –