树形菜单的绑定以及链接

前台代码


<body style="background-color: #B1E7FF;">
    <form id="form1" runat="server">
    <div style="width: 180px; height: 100%">
        <asp:TreeView ID="TV_FuncList" runat="server" Width="186px" ShowLines="True">
            <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
            <Nodes>
            </Nodes>
            <NodeStyle Font-Names="Tahoma" Font-Size="10pt" ForeColor="Black" HorizontalPadding="0px"
                NodeSpacing="0px" VerticalPadding="0px" />
            <ParentNodeStyle Font-Bold="False" />
            <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px"
                VerticalPadding="0px" />
        </asp:TreeView>
    </div>
    </form>
</body>
<script type="text/javascript">
    function oclick(obj) {
        if (document.getElementById("hover") != null) document.getElementById("hover").removeAttribute("id");
        obj.setAttribute("id", "hover");
    }
</script>
</html>

后台代码:

  protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string filePath = AppDomain.CurrentDomain.BaseDirectory + "MenuTree/MenuTree01.xml";
                if (!string.IsNullOrEmpty(Request.QueryString["id"]))
                {
                    if (Request.QueryString["id"].ToString() == "2")
                    {
                        filePath = AppDomain.CurrentDomain.BaseDirectory + "MenuTree/MenuTree02.xml";
                    }
                }
                BindTreeView(TV_FuncList, filePath);
            }
        }

 

   /// <summary>
        /// 绑定数据到树型控件上
        /// </summary>
        /// <param name="tv">树型控件对象</param>
        /// <param name="filePath">xml文件的路径</param>
        private void BindTreeView(TreeView tv, string filePath)
        {
            tv.Nodes.Clear();
            if (string.IsNullOrEmpty(filePath) || !File.Exists(filePath))
            {
                return;
            }
            XElement rootNode = XElement.Load(filePath);
            if (rootNode.Attribute("level") != null && rootNode.Attribute("level").Value != "-1")
            {
                tv.ExpandDepth = int.Parse(rootNode.Attribute("level").Value.Trim());
            }
            IEnumerable<XElement> nodeList = rootNode.Elements();
            foreach (XElement node in nodeList)
            {

      TreeNode treeNode = new TreeNode();
                treeNode.Text = node.Attribute("name").Value.Trim();
                treeNode.Value = node.Attribute("guid").Value.Trim();
                treeNode.ToolTip = node.Attribute("name").Value.Trim();
                if ((node.Attribute("icon") != null) && (node.Attribute("icon").Value.Trim() != ""))
                    treeNode.ImageUrl = node.Attribute("icon").Value.ToString();
                //if (node.HasElements)
                //{
                treeNode.SelectAction = TreeNodeSelectAction.Expand;
                //处理子节点
                AddChildTreeNode(ref treeNode, node, node.Attribute("name").Value.Trim());
                //}
                //else
                //{
                if (node.Attribute("code") != null)
                {

 treeNode.NavigateUrl = string.Format("javascript:parent.goToUrl('{0}','{1}');", node.Attribute("code").Value.Trim(), node.Attribute("name").Value.Trim());

  }
                //}
                tv.Nodes.Add(treeNode);
            }
        }

 

 

    /// <summary>
        /// 给树型控件的根节点添加子节点
        /// </summary>
        /// <param name="treeNode">树型节点</param>
        /// <param name="xmlNode">Xml元素节点</param>
        /// <param name="parentNodeName">上一节点的名称</param>
        private void AddChildTreeNode(ref TreeNode treeNode, XElement xmlNode, string parentNodeName)
        {
            IEnumerable<XElement> nodeList = xmlNode.Elements();
            if (nodeList != null)
            {
             foreach (XElement node in nodeList)
                {
                    TreeNode childTreeNode = new TreeNode();
                    childTreeNode.Text = node.Attribute("name").Value.Trim();
                    childTreeNode.Value = node.Attribute("guid").Value.Trim();
                    childTreeNode.ToolTip = node.Attribute("name").Value.Trim();
                    if ((node.Attribute("icon") != null) && (node.Attribute("icon").Value.Trim() != ""))
                        childTreeNode.ImageUrl = node.Attribute("icon").Value.ToString();
                    //if (node.HasElements)
                    //{
                    childTreeNode.SelectAction = TreeNodeSelectAction.Expand;
                    AddChildTreeNode(ref childTreeNode, node, node.Attribute("name").Value.Trim());
                    //}
                    //else
                    //{
                    if (node.Attribute("code") != null)
                    {

             childTreeNode.NavigateUrl = string.Format("javascript:parent.goToUrl('{0}','{1}');", node.Attribute("code").Value.Trim(), node.Attribute                                            ("name").Value.Trim());

                    }                     //}                     treeNode.ChildNodes.Add(childTreeNode);                 }             }         }

    } }

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/yisheng/archive/2012/12/11/2813813.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值