树菜单menuTree父节点parentNode
子节点childNode如何用递归算法生成一个无限级的菜单呢? public class WebForm1 : System.Web.UI.Page
{
protected Prolink.Web.UI.TreeView menuTree;
private Prolink.Web.UI.DefaultTreeNode parentNode = null;
private Prolink.Web.UI.DefaultTreeNode childNode = null;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("Menu.xml")); XmlNode menuNode = doc.SelectSingleNode("menu");
RenderParentNode(menuNode);
} private void RenderParentNode(XmlNode menuNode)
{
foreach(XmlNode xn in menuNode.ChildNodes)
{
parentNode = new Prolink.Web.UI.DefaultTreeNode(xn.Attributes["caption"].Value,false);
RenderChildNode(xn);
menuTree.Nodes.Add(parentNode);
}
} private void RenderChildNode(XmlNode node)
{
foreach(XmlNode xn in node.ChildNodes)
{
childNode = new Prolink.Web.UI.DefaultTreeNode(xn.Attributes["caption"].Value,false);
if (xn.HasChildNodes)
{
RenderChildNode(xn);
childNode.Nodes.Add(childNode);
}
parentNode.Nodes.Add(childNode);
}
}
子节点childNode如何用递归算法生成一个无限级的菜单呢? public class WebForm1 : System.Web.UI.Page
{
protected Prolink.Web.UI.TreeView menuTree;
private Prolink.Web.UI.DefaultTreeNode parentNode = null;
private Prolink.Web.UI.DefaultTreeNode childNode = null;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("Menu.xml")); XmlNode menuNode = doc.SelectSingleNode("menu");
RenderParentNode(menuNode);
} private void RenderParentNode(XmlNode menuNode)
{
foreach(XmlNode xn in menuNode.ChildNodes)
{
parentNode = new Prolink.Web.UI.DefaultTreeNode(xn.Attributes["caption"].Value,false);
RenderChildNode(xn);
menuTree.Nodes.Add(parentNode);
}
} private void RenderChildNode(XmlNode node)
{
foreach(XmlNode xn in node.ChildNodes)
{
childNode = new Prolink.Web.UI.DefaultTreeNode(xn.Attributes["caption"].Value,false);
if (xn.HasChildNodes)
{
RenderChildNode(xn);
childNode.Nodes.Add(childNode);
}
parentNode.Nodes.Add(childNode);
}
}
<?xml version="1.0" encoding="utf-8" ?>
<menu>
<menu-root caption="China" url="" target="" role="0">
<menu-node caption="BeiJing" url="BeiJing.aspx" target="" role="0"></menu-node>
<menu-node caption="ShangHai" url="ShangHai.aspx" target="" role="0"></menu-node>
<menu-root caption="FuJian" url="" target="" role="0">
<menu-node caption="FuZhou" url="FuZhou.aspx" target="" role="0"></menu-node>
<menu-node caption="PuTian" url="PuTian.aspx" target="" role="0"></menu-node>
</menu-root>
</menu-root>
<menu-root caption="America" url="" target="" role="0,1">
<menu-node caption="Washington" url="Washington.aspx" target="" role="0,1"></menu-node>
<menu-node caption="NewYork" url="NewYork.aspx" target="" role="0,1"></menu-node>
</menu-root>
<menu-root caption="Japan" url="" target="" role="0,1,2">
<menu-node caption="Tokyo" url="Tokyo.aspx" target="" role="0,1,2"></menu-node>
<menu-node caption="Ghost" url="Ghost.aspx" target="" role="0,1,2"></menu-node>
</menu-root>
</menu>
{
if(条件)
{
this.co(a);
}
}注意这里的条件,否则会死循环