目的是生成一個數狀菜單,菜單內容放在xml文件中
Menu.xml:
<?xml version="1.0" encoding="utf-8" ?> 
<menu-root>
  <menu-node>繫統設置
    <menu-node target="" url="">站別建檔</menu-node>
    <menu-node target="" url="">3B3參數種類建檔</menu-node>
    <menu-node target="" url="">繫統參數設定</menu-node>
  </menu-node>
  <menu-node>基本建檔
    <menu-node target="" url="">用戶建檔</menu-node>
    <menu-node target="" url="">3B3參數建檔</menu-node>
  </menu-node>
  <menu-node target="" url="">3B3</menu-node>
</menu-root>Menu.aspx.cs:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
XmlDocument doc = new XmlDocument();
    
doc.Load(System.Web.HttpContext.Current.Request.PhysicalApplicationPath+"Menu.xml");
foreach(XmlNode node in doc.ChildNodes)
{
switch(node.NodeType)
{
case XmlNodeType.Element:
{
if (node.HasChildNodes) GetParentNode(node);
break;
}
default:
break;
}
}
} /// <summary>
/// 獲得父節點
/// </summary>
/// <param name="rootNode"></param>
public void GetParentNode(XmlNode rootNode)
{
foreach(XmlNode node in rootNode.ChildNodes)
{
parentNode = new Prolink.Web.UI.DefaultTreeNode(node.Value,false);
if (node.HasChildNodes)
{
GetChildNode(node,parentNode);
//menuTree.Nodes.Add(parentNode);
}
else
{
menuTree.Nodes.Add(parentNode);
}
}
} /// <summary>
/// 獲得子節點
/// </summary>
/// <param name="parentNode"></param>
/// <param name="parentNode1"></param>
public void GetChildNode(XmlNode parentNode, Prolink.Web.UI.DefaultTreeNode parentNode1)
{
foreach(XmlNode node in parentNode.ChildNodes)
{
childNode = new Prolink.Web.UI.DefaultTreeNode(node.Value,false);
parentNode1.Nodes.Add(childNode);
}
menuTree.Nodes.Add(parentNode1);
}
--------------------------------------------------------------------
為何不能獲得每個節點裏麵的value,值獲得的會為null,請問我這方法是不是哪裏有問題,Prolink.Web.UI.DefaultTreeNode是一個自定義控件

解决方案 »

  1.   

    為何我取 <menu-node>繫統設置這個節點是,ChildNodes.Count=4,是不是因為囬車問題?改如何解決?
      

  2.   

    最好改成这样
    <?xml version="1.0" encoding="utf-8" ?> 
    <menu-root>
      <menu-node-root name="繫統設置">
        <menu-node target="" url="">站別建檔</menu-node>
        <menu-node target="" url="">3B3參數種類建檔</menu-node>
        <menu-node target="" url="">繫統參數設定</menu-node>
      </menu-node-root>
      <menu-node-root name="基本建檔">
        <menu-node target="" url="">用戶建檔</menu-node>
        <menu-node target="" url="">3B3參數建檔</menu-node>
      </menu-node-root>
      <menu-node name = "其他">
        <menu-node target="" url="">3B3</menu-node>
      </menu-node-root>
    </menu-root>
      

  3.   

    我现在是这样改的
    <?xml version="1.0" encoding="utf-8" ?> 
    <menu-root>
      <menu-node Target="" NavigateUrl="" Text="繫統設置">
        <menu-node Target="" NavigateUrl="" Text="站別建檔" />
        <menu-node Target="" NavigateUrl="" Text="3B3參數種類建檔" />
        <menu-node Target="" NavigateUrl="" Text="繫統參數設定" />
      </menu-node>
      <menu-node Target="" NavigateUrl="" Text="基本建檔">
        <menu-node Target="" NavigateUrl="" Text="用戶建檔" />
        <menu-node Target="" NavigateUrl="" Text="3B3參數建檔" />
      </menu-node>
      <menu-node Target="" NavigateUrl="" Text="3B3" />
    </menu-root>
    现在问题又出来了,当我用parentNode.Nodes.Add(childNode)时会叫我发送错误报告,自动关闭vs.net,天啊,这是什么问题???