DevExpress TreeList控件的复选框

        TreeList控件可以同时显示树结构和其他数据列,即在一个列上建立父子关系展开或收缩,同时还可以显示其他列的内容。
        在TreeList中同时引入了 Node和 Columns概念, 第一列为树结构, 其余列为数据列, 任何列都可作为树结构列(即拖动到第一列)显示。
实现多级树---数据源绑定
        在TreeList里添加要显示列(第一列为树结构,其他列为数据列),并指定FieldName为数据库列名
        指定KeyFieldName属性为主键,ParentFieldName属性为树状分组列。注意 ParentFieldName指定的列如果为空值,树状可能会混乱(只有一个根结点,其他为此节点的子结点)
        用TreeList.DataSource = DataTable 绑定数据即可
树形控件是使用频率很高的一种控件。对于属性控件往往需要下面两个功能:
        1.TreeList带有CheckBox,并且节点要有三种状态(所有的子节点都选中,所有的子节点都没选择,一部分子节点选中)。使用DevXpress的TreeList控件很容易实现这一功能。
        设置TreeList.OptionsView.ShowCheckBoxes = true //是否显示CheckBox
        设置TreeList.OptionsBehavior.AllowIndeterminateCheckState = true; //设置节点是否有中间状态,即一部分子节点选中,一部分子节点没有选中
设置这两个属性之后就实现了TreeList带有CheckBox,并且节点有三种状态。
        2.选中父节点或者子节点相互影响的功能,如选择父节点选择所有子节点。绑定TreeList的两个事件AfterCheckNode和BeforeCheckNode
DevExpress的TreeList要想在节点前面显示复选框,得修改属性OptionsView->ShowCheckBoxes=True
复选框的子节点与父节点统一的规则有:
        1、选择某一节点时,该节点的子节点全部选择
        2、取消某一节点时,该节点的子节点全部取消选择
        3、某节点的子节点全部选择时,该节点选择
        4、某节点的子节点未全部选择时,该节点不选择

       #region 节点选中前事件
        private void treeList1_BeforeCheckNode(object sender, DevExpress.XtraTreeList.CheckNodeEventArgs e)
        {
            if (e.PrevState == CheckState.Checked)
            {
                e.State = CheckState.Unchecked;
            }
            else
            {
                e.State = CheckState.Checked;
            }
        }
        #endregion

        #region 节点选中后事件
        private void treeList1_AfterCheckNode(object sender, DevExpress.XtraTreeList.NodeEventArgs e)
        {
            SetCheckedChildNodes(e.Node, e.Node.CheckState);
            SetCheckedParentNodes(e.Node, e.Node.CheckState);
        }
        #endregion

        #region 设置子节点状态
        private void SetCheckedChildNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, CheckState check)
        {
            for (int i = 0; i < node.Nodes.Count; i++)
            {
                node.Nodes[i].CheckState = check;
                SetCheckedChildNodes(node.Nodes[i], check);
            }
        }
        #endregion

        #region 设置父节点状态
        private void SetCheckedParentNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, CheckState check)
        {
            if (node.ParentNode != null)
            {
                bool b = false;
                CheckState state;
                for (int i = 0; i < node.ParentNode.Nodes.Count; i++)
                {
                    state = (CheckState)node.ParentNode.Nodes[i].CheckState;
                    if (!check.Equals(state))
                    {
                        b = !b;
                        break;
                    }
                }
                if (b)
                {
                    node.ParentNode.CheckState = CheckState.Indeterminate;
                }
                else
                {
                    node.ParentNode.CheckState = check;
                }
                SetCheckedParentNodes(node.ParentNode, check);
            }
        }
        #endregion
时间: 2024-11-01 00:34:46

DevExpress TreeList控件的复选框的相关文章

repeater控件分页复选框状态

问题描述 大家好,请教一个问题.我用repeater控件进行分页显示数据.现在的问题是,我在第一页的时候选中2个复选框,然后点第二页,再返回到第一页,刚刚在第一页选中的2个复选框就丢失了.有什么好的解决方案吗,或是提供个例子.谢谢大家.我的QQ:936944308验证问题:林志炫 解决方案 解决方案二:这个基本上没有好办法,得自己写方法,你可以用一个变量记录每一页被选中条目的index,然后再将对应的index里的复选框选中.解决方案三:能写个例子给我看看吗?谢谢

DEV控件GridView复选框前面有小加号问题

问题描述 初学DEV控件,使用过程中发现有这么一个问题:每一列的前面有个小加号哪位大神知道怎么才能去掉前面的小加号? 解决方案 解决方案二:GridView1.OptionsDetail.EnableMasterViewMode=False解决方案三:你这是设置了分组了吧,显示GroupPanel看一下

DevExpress TreeList控件复选框简介

TreeList控件可以同时显示树结构和其他数据列,即在一个列上建立父子关系展开或收缩,同时还可以显示其他列的内容. 在TreeList中同时引入了 Node和 Columns概念, 第一列为树结构, 其余列为数据列, 任何列都可作为树结构列(即拖动到第一列)显示. 实现多级树---数据源绑定 在TreeList里添加要显示列(第一列为树结构,其他列为数据列),并指定FieldName为数据库列名 指定KeyFieldName属性为主键,ParentFieldName属性为树状分组列.注意 Pa

ASP.NET中 CheckBox复选框控件的使用_基础应用

我们可以使用两种类型的 ASP.NET 控件将复选框添加到 Web 窗体页上:单独的 CheckBox 控件或 CheckBoxList 控件.两种控件都为用户提供了一种输入布尔型数据(真或假.是或否)的方法. 这里我们单独使用CheckBox,先来看看它的属性 属性 描述 .NET AutoPostBack 规定在 Checked 属性已改变后,是否立即向服务器回传表单.默认是 false. 1.0 CausesValidation 规定点击 Button 控件时是否执行验证. 2.0 Che

ASP.NET中CheckBoxList复选框列表控件详细使用方法_基础应用

可以使用两种类型的 ASP.NET 控件将复选框添加到 Web 窗体页上:单独的 CheckBox 控件或 CheckBoxList 控件.两种控件都为用户提供了一种输入布尔型数据(真或假.是或否)的方法. 本文主要介绍CheckBoxList,不言而喻,看到List就知道是一个列表(集合),一个控件可以包含多个CheckBox,下面让我们来看看具体的用法. 1.绑定数据 复制代码 代码如下: this.lngCatalogID.DataSource = dt; //这里我绑到DataTable

使用VBScript操作Html复选框(CheckBox)控件

vbscript|复选框|控件 这两天看到有朋友问起html内的各种控件怎么用script进行操作,现在自己也总结一下.因为项目原因,很多程序都是用VBScript写的,感兴趣的朋友可以改写成JavaScript,到时候别忘了共享一下啊,活活. OK,切入主题,现介绍一下: 今天介绍使用VBScript判断复选框的选中数量和被选中的复选框的值. 在生成某个一览表时,比如一个订货单一览表,每条订货单记录前面可能会放置一个复选框,以提供批量删除,发行等功能.一般每个复选框的值也就是后面对应记录的主键

看实例学VFP:复选框控件

在vfp基础教程-复选框一文中,已经给出了复选框控件的常用属性.这个控件的使用重点是对它的value属性值的判断上,另外也可以通过controlsource属性把它和表中的某个逻辑型字段绑定,同时也可以在它支持的click.interactiveChange等事件中进行编程. 本文是一个在复选框控件的interactiveChange事件中编程的小例子,运行时通过复选框的选择来控制label控件的文字大小及颜色变化,运行界面如下: 制作步骤: 一.新建表单,将其caption属性值设置为"编程入

mfc-MFC 登陆界面中怎么用复选框控件记住密码

问题描述 MFC 登陆界面中怎么用复选框控件记住密码 如题 正在做个登陆界面 怎么记住账号和密码啊 试了很多程序都不行 谢谢各位大神! 解决方案 在第一次登陆的时候,用户一定是先输入一个密码的,把这个密码写到一个文件中,然后下次启动的时候判断这个文件是否存在,存在的话直接显示在复选框中 解决方案二: 可以使用ini文件或者注册表保存密码,假设你用ini,大致的代码: CString gamepatch;//读取ini文件的GetPrivateProfileString("GameInfo&quo

gridview控件的启动编辑和启动删除复选框不见了,求告知在哪里5555

问题描述 gridview控件的启动编辑和启动删除复选框不见了,求告知在哪里5555 各位大神,请看图:求告知如何设置,谢谢 解决方案 http://zhidao.baidu.com/link?url=WJWcsBcUgVUTUoZVl8BPhhlWwoKKZHYelF6cC2r4pcuLJam4LEjNfVinUIm4t9bCqt0MYc1xQEJ0rydEMuTNj_ 解决方案二: 谢谢,我也刚刚发现,我把update用了之后,自动就出来了,嘿嘿,谢谢