asp.net TreeView与XML三步生成列表树_基础应用

刚我在做Tree view 绑定时自己摸索了一下,网上有人说TreeView绑定数据源,用什么递归绑定啥的,我不想看了,就自己试着写了一个
我是这样做的,如果有什么问题请大神指导,我是菜鸟额..
1:页面TreeView 叫tvFunction
2:新建 adminFunction.xml

复制代码 代码如下:

<?xml version="1.0" encoding="utf-8" ?>
<functions>
  <function name="商品发布" url="~/page/leaves/leave.aspx">
    <subfunction name="添加商品" url="~/page/leaves/leave.aspx">
    </subfunction>
    <subfunction name="添加商品" url="~/page/leaves/leave.aspx">
    </subfunction>
  </function>
  <function name="留言发布" url="~/page/leaves/leave.aspx">
    <subfunction name="添加留言" url="~/page/leaves/leave.aspx">
    </subfunction>
    <subfunction name="修改留言" url="~/page/leaves/leave.aspx">
    </subfunction>
  </function>
</functions>

3:页面绑定

复制代码 代码如下:

/// <summary>
        /// 初始化功能树结构
        /// </summary>
        private void InitFunction()
        {
            XmlDocument xmldoc = new XmlDocument();
            string xmlPath = "~/adminFunction.xml";
            xmlPath = Server.MapPath(xmlPath);
            xmldoc.Load(xmlPath);
            XmlNode root = xmldoc.DocumentElement;

            foreach (XmlNode node in root.ChildNodes)
            {
                //获取父节点的信息显示(轻狂-书生)
                XmlElement x1 = node as XmlElement;
                string name = x1.GetAttribute("name");
                string url = x1.GetAttribute("url");
                TreeNode tn = new TreeNode();
                tn.Text = name;
                tn.NavigateUrl = url;
                foreach (XmlNode subnode in x1.ChildNodes)
                {
                    XmlElement subxmlEmt = subnode as XmlElement;
                    string subname = subxmlEmt.GetAttribute("name");
                    string suburl = subxmlEmt.GetAttribute("url");
                    TreeNode subtn = new TreeNode();
                    subtn.Text = subname;
                    subtn.NavigateUrl = suburl;
                    tn.ChildNodes.Add(subtn);

                }
                tvFunction.Nodes.Add(tn);

            }
        }

4:显示效果

时间: 2024-10-16 08:08:50

asp.net TreeView与XML三步生成列表树_基础应用的相关文章

asp.net TreeView递归循环子节点生成树形菜单实例_实用技巧

本文实例讲述了asp.net TreeView递归循环子节点生成树形菜单的方法.分享给大家供大家参考,具体如下: 这里主要用到递归循环获取子结点 /// <summary> /// 生成根节点 /// </summary> /// <param name="treeview"></param> protected void BindTreeView(long ID, TreeView treeview) { DataTable dt =

主数据三步走,国药一体化基础就靠它

"一家企业要想真正实现服务化.标准化.模块化的,必须要有数据的整合集成,而主数据管理平台是集成数据的重要手段."中国医药集团(简称"国药集团")信息化专家组组长.信息部主任雷万云博士在接受记者采访时指出. 从2005年确立集团编码标准体系,到2010年陆续开始主数据平台一期.二期.三期项目的建设,国药主数据管理平台历久弥新,经过前后8年时间的积累和优化后,三期新功能于2013年7月1日成功上线启用,并稳定运行至今近两个月的时间. 雷万云在个人博客中提到:"

asp.net学习中发现的比较完整的流程_基础应用

如果你已经有较多的面向对象开发经验,跳过以下这两步:  第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET. ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去!  第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习.NET Framework.ASP.NET是建构在.NET Framework之上的技术,你对.NET Framework了解得越深,

ASP.NET中根据XML动态创建使用WEB组件_实用技巧

  前段时间笔者在开发中需要动态创建WEB组件,本以为是小事一桩,谁知看时容易做时难.里面还真有些小问题.下面笔者就结合自己的程序来介绍一下如何动态创建并使用WEB组件,希望能给做类似工作的朋友提供一点帮助.   一.程序思路   程序主要分三部分:   1.程序要根据XML中的数据信息确定需要创建的WEB组件的个数.   2.动态创建WEB组件.   3.使用动态创建的WEB组件.   其中2和3是笔者要重点介绍的部分.   下面笔者就按照这三部分结合程序实例(以c#为例)来一一介绍.   二

ASP.NET MVC使用RazorEngine解析模板生成静态页_实用技巧

简述       Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法与.NET Framework 结合,广泛应用于ASP.NET MVC 项目.       我们在很多项目开发中会常常用到页面静态化,页面静态化有许多方式,最常见的就是类似很多PHP CMS种使用的 标签替换的方式(如:帝国CMS.EcShop等),还有很多都是伪静态,伪静态我们就不做过

ASP.NET中Literal控件的使用方法[原创]_基础应用

可以将 Literal 控件用作网页上其他内容的容器.Literal 控件最常用于向网页中动态添加内容.简单的讲,就是可以把 HTML 代码写到 Literal 控件上,直接呈现出来. 一.常见Literal属性 属性 描述 Text 指定 Literal 控件中显示的文本.在用户的浏览器中,这会显示为 HTML. Mode 指定控件如何处理添入其中的标记. 二.基础用法 前台 LiteralTest.aspx 复制代码 代码如下: <asp:Literal ID="Literal1&qu

ASP.NET中Literal与Label控件的区别_基础应用

一.方案和背景 Literal 控件表示用于向页面添加内容的几个选项之一.对于静态内容,无需使用容器,可以将标记作为 HTML 直接添加到页面中.但是,如果要动态添加内容,则必须将内容添加到容器中.典型的容器有 Label 控件.Literal 控件.Panel 控件和 PlaceHolder 控件. Literal 控件与 Label 控件的区别在于 Literal 控件不向文本中添加任何 HTML 元素.(Label 控件呈现一个 span 元素.)因此,Literal 控件不支持包括位置属

JS中创建函数的三种方式及区别_基础知识

1.函数声明 function sum1(n1,n2){ return n1+n2; }; 2.函数表达式,又叫函数字面量 var sum2=function(n1,n2){ return n1+n2; }; 两者的区别:解析器会先读取函数声明,并使其在执行任何代码之前可以访问:而函数表达式则必须等到解析器执行到它所在的代码行才会真正被解释执行. 自执行函数严格来说也叫函数表达式,它主要用于创建一个新的作用域,在此作用域内声明的变量,不会和其它作用域内的变量冲突或混淆,大多是以匿名函数方式存在,

基于JavaScript 声明全局变量的三种方式详解_基础知识

JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍. 声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量.该方式即为显式声明详细如下: 复制代码 代码如下: var test = 5;  //全局变量function a(){  var cc=3; //局部变量  alert(test);}function b(){alert(test);} 声明方式二: 没有使用var,直接给标识符test赋值,这