aspx代码

<dx:ASPxTreeView ID="ASPxTreeView1" runat="server">
             </dx:ASPxTreeView>

aspx.cs代码

     protected void Page_Load(object sender, EventArgs e)
        {
            AddTree(, null);

        }
        private void AddTree(int Pid, TreeViewNode PNode)
        {
            SQLHelper sqlHelper = new SQLHelper();
            string strSQL =
                "SELECT * FROM test";
            System.Diagnostics.Debug.WriteLine(strSQL);

            DataSet ds = sqlHelper.ExecuteDataSet(strSQL);
            DataTable dt = ds.Tables[];

            )
            {
                DataView dv = new DataView(dt);
                //过滤ParentID,得到当前的所有子节点 ParentID为父节点ID
                dv.RowFilter = "[duty_parentid] = " + Pid;
                //循环递归
                foreach (DataRowView Row in dv)
                {
                    //声明节点
                    TreeViewNode Node = new TreeViewNode();
                    //绑定超级链接
                    Node.NavigateUrl = String.Format("javascript:show('{0}')", Row["dutyName"].ToString());
                    //开始递归
                    if (PNode == null)
                    {
                        //添加根节点
                        Node.Text = Row["dutyName"].ToString();
                        ASPxTreeView1.Nodes.Add(Node);
                        Node.Expanded = false; //节点状态展开
                        AddTree(Int32.Parse(Row["dutyID"].ToString()), Node);    //再次递归
                    }
                    else
                    {
                        //添加当前节点的子节点
                        Node.Text = Row["dutyName"].ToString();
                        PNode.Nodes.Add(Node);
                        Node.Expanded = false; //节点状态展开
                        AddTree(Int32.Parse(Row["dutyID"].ToString()), Node);     //再次递归
                    }
                }
            }
        }

获取选中的Nodes

private List<TreeViewNode> GetSelectNodes(TreeViewNodeCollection Nodes)
        {

            List<TreeViewNode> listNodes = new List<TreeViewNode>();
            foreach (TreeViewNode node in Nodes)
            {
                FindCheckNode(node, listNodes);
            }          

            return listNodes;

        }

        private void FindCheckNode(TreeViewNode node, List<TreeViewNode> listNodes)
        {
            if (node.Checked)
            {
                listNodes.Add(node);
            }
            foreach (TreeViewNode childnode in node.Nodes)
            {
                FindCheckNode(childnode, listNodes);
            }
        }    

DevExpress中的ASPxTreeView 递归显示checknodes并获得选中值的更多相关文章

  1. PHP 根据php传的值修改 select 中动态生成的 option 组的默认选中值

    有一个情况今天遇到了:通过后台传过来的一组下拉框的option值,需要默认选中其中某一项. html 部分是这样的: <select class="form-control" ...

  2. 【笔试题】Java 中如何递归显示一个目录下面的所有目录和文件?

    笔试题 Java 中如何递归显示一个目录下面的所有目录和文件? import java.io.File; public class Test { private static void showDir ...

  3. devexpress中gridcontrol头部添加垂直线(右边框)

    winform开发,用devexpress中的gridcontrol控件,头部默认是3D样式,当客户希望像内容一样扁平化显示且需要添加垂直线(右边框)时恶梦开始了..经过一阵摸索发现可以这样解决: 1 ...

  4. Devexpress 中对RedailMenu的使用

    最近项目中用到RadialMenu,效果图如下所示: 闲下来就对,devexpress中的RedialMenu的使用总结一下. 第一:假设RedialMenu中全部是BarButtonItem的情况. ...

  5. DevExpress中RibbonControl的简单应用

    现在介绍一下DevExpress中的RibbonControl的简单应用,搭建一个拥有Office2010风格的窗体程序. 第一步:打开VS2015,新建一个windows窗体应用程序: 第二步:把需 ...

  6. DevExpress 中 用 LookUpEdit 控件 代替 ComboBoxEdit 控件来绑定 DataTable

    绑定数据及定义列信息 LookUpEdit lue = lookUpEdit1; DataTable dt = new DataTable(); dt.Columns.Add(new DataColu ...

  7. DevExpress中的lookupedit的使用方法详解

    摘自: http://***/zh-CN/Info/catalog/17631.html 概述:本文详细介绍了DevExpress中的lookupedit的使用方法. 绑定数据源:   1 2 3 l ...

  8. 网络采集软件核心技术剖析系列(5)---将任意博主的全部博文下载到内存中并通过Webbrower显示(将之前的内容综合到一起)

    一 本系列随笔概览及产生的背景 自己开发的豆约翰博客备份专家软件工具问世3年多以来,深受广大博客写作和阅读爱好者的喜爱.同时也不乏一些技术爱好者咨询我,这个软件里面各种实用的功能是如何实现的. 该软件 ...

  9. DevExpress中实现GridControl的分页功能

    DevExpress中如何实现GridControl的分页功能 简介:DevExpress中如何实现GridControl的分页功能, 主要是利用DataNavigator和GridControl组合 ...

随机推荐

  1. 让 Web 站点崩溃最常见的七大原因

    磁盘已满 导致系统无法正常运行的最可能的原因是磁盘已满.一个好的网络管理员会密切关注磁盘的使用情况,隔一定的时间,就需要将磁盘上的一些负载转存到备份存储介质中(例如磁带).   日志文件会很快用光所有 ...

  2. Android -- 闹钟服务的使用(单次闹钟)

    1. 效果图

  3. LINQ to Entities 和LINQ to Objects 的区别

    本文资料来源:http://www.codeproject.com/Articles/246861/LINQ-to-Entities-Basic-Concepts-and-Features) LINQ ...

  4. 自定义plain 样式的 tableview,模拟器上不显示分割线,真机上却显示分割线.

    一, 经历 1> 自定义plain 样式的 tableview,模拟器上不显示分割线,真机上却显示cell 下面的分割线. 2> 尝试使用表格的separatorStyle属性,尝试失败. ...

  5. 三元表达式、逻辑表达式 与 &&、||的妙用

    var a = "123", b = 123; console.log(a === b && "相等" || "不相等"); ...

  6. hbase的查询scan功能注意点(setStartRow, setStopRow)

    来自http://hi.baidu.com/7636553/blog/item/982beb17713bc004972b43ee.html hbase的scan查询功能注意项: Scan scan = ...

  7. [LintCode] Generate Parentheses 生成括号

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...

  8. [LintCode] Segment Tree Build 建立线段树

    The structure of Segment Tree is a binary tree which each node has two attributes start and end deno ...

  9. [CareerCup] 15.2 Renting Apartment II 租房之二

    Write a SQL query to get a list of all buildings and the number of open requests (Requests in which ...

  10. android-Activity(四大组件之一)

    一.Activity理解 1.定义: 直译为活动,是Android定义四大应用组件之一,也是最重要的用的最多的: 用来提供一个能让用户操作并与之交互的界面 一个应用有多个界面也就是包含多个Activi ...