`
jdw
  • 浏览: 162592 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DevExpress控件之XtraTreeList

    博客分类:
  • C#
SQL 
阅读更多

    DevExpress控件,最近的项目里有用到·功能确实强大,一个控件抵的上以前vs自带控件的几个,算得上是复合控件的。今天来记下XtraTreeList 控件使用,备忘···

1.treeList1绑定数据

public void InitDate()
        {
            ds = SqlData.QueryDataSet("select deptid,name,code,rootid from dbo.bm_dept");

            treeList1.OptionsBehavior.PopulateServiceColumns = true;
            //this.treeList1.PopulateColumns();
            this.treeList1.ParentFieldName = "rootid";
            this.treeList1.KeyFieldName = "deptid";

            this.treeList1.DataSource = ds.Tables[0];
        }

 

其中的 this.treeList1.ParentFieldName = "rootid";
            this.treeList1.KeyFieldName = "deptid";很重要 ParentFieldName 设置的字段是从属于KeyFieldName设置的字段的。如果A数据ParentFieldName 字段等于B数据的KeyFieldName字段,那A是B的子节点,设置成0 那A是根节点·

所以添加新数据时,要注意KeyFieldName字段的选择,确立从属关系··

2.修改时 具备XtraGridControl 列修改的功能

private void treeList1_CellValueChanged(object sender, DevExpress.XtraTreeList.CellValueChangedEventArgs e)
        {
            try
            {
                string colKey = e.Column.FieldName;
                string sqlStr = "";
                switch (colKey)
                {
                        //select deptid,name,code,rootid from bm_dept
                    case "deptid":
                        sqlStr = string.Format("update bm_dept set {0}='{1}' where deptid='{2}'", colKey, e.Value, treeList1.FocusedNode.GetValue("deptid").ToString());
                        break;
                    case "name":
                        sqlStr = string.Format("update bm_dept set {0}='{1}' where deptid='{2}'", colKey, e.Value, treeList1.FocusedNode.GetValue("deptid").ToString());
                        break;
                    default:
                        break;
                }
                if (!sqlStr.Trim().Equals(""))
                    SqlData.ExecuteSql(sqlStr);
                InitDate();
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message.ToString());
            }
        }

 

3.删除功能 注意:treeList1.FocusedNode.GetValue("deptid").ToString() 获取行的列值

private void sBtnDel_Click(object sender, EventArgs e)
        {
            //if(treeList1.FocusedNode != null)
            //    treeList1.DeleteNode(treeList1.FocusedNode);
            int deid = int.Parse(treeList1.FocusedNode.GetValue("deptid").ToString());
            SqlDataReader dr = SqlData.QueryDataReader("select rootid from bm_dept");
            while (dr.Read())
            {
                int rtid = int.Parse(dr["rootid"].ToString());
                if ( rtid== deid)
                {
                    MessageBox.Show("根节点不能删除!请先删除子节点。", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
            }

            if (treeList1.FocusedNode != null)
            {
                if (MessageBox.Show("确认删除嘛?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK)
                {
                    try
                    {
                        int i= SqlData.ExecuteSql("delete from bm_dept where deptid='" + treeList1.FocusedNode.GetValue("deptid").ToString() + "'");
                        if (i > 0)
                        {
                            InitDate();
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
            else
            { MessageBox.Show("请选择行", "系统提示"); }

        }

 

4.TreeList 节点拖放

string mubiao tuo ;//全局变量

private void treeList1_DragDrop(object sender, DragEventArgs e)
        {
            DevExpress.XtraTreeList.TreeListHitInfo hi = treeList1.CalcHitInfo(treeList1.PointToClient(new Point(e.X, e.Y)));
            mubiao = hi.Node.GetValue("deptid").ToString();

            if (index == 0)
            {
                //MessageBox.Show("放到当前节点的下级");
                string sql = string.Format("update bm_dept set rootid='{0}' where deptid='{1}'", mubiao, tuo);
                SqlData.ExecuteSql(sql);

            }
            else
            {
                //MessageBox.Show("放到当前节点同级");
                SqlDataReader dr = SqlData.QueryDataReader("select rootid from bm_dept where deptid='" + mubiao + "'");
                dr.Read();
                string roots=dr["rootid"].ToString();
                string sql = string.Format("update bm_dept set rootid='{0}' where deptid='{1}'", roots, tuo);
                SqlData.ExecuteSql(sql);
            }

           
            mubiao = "";
        }

        private void treeList1_DragEnter(object sender, DragEventArgs e)
        {
            tuo = treeList1.FocusedNode.GetValue("deptid").ToString();
        }

        private void treeList1_CalcNodeDragImageIndex(object sender, DevExpress.XtraTreeList.CalcNodeDragImageIndexEventArgs e)
        {
            index = e.ImageIndex;
        }
 

 

分享到:
评论
1 楼 阿图是会飞的猪 2013-01-22  
Mark,正在用这个控件

相关推荐

    DevExpress控件V7.1完整版

    DevExpress控件V7.1完整版 包含如下程序集 AjaxControlToolkit.dll ConverToCn.cs DevBaseClassLib.dll DevClassLib.dll DevComponents.DotNetBar2.dll DevComponents.DotNetBar27.dll DevExpress.Data.v7.1...

    DevExpress控件forC#-8.2

    DevExpress控件forC#-8.2完整版 --------------------------------- DevExpress.BonusSkins.v8.2.dll DevExpress.Charts.v8.2.Core.dll DevExpress.Data.v8.2.Compact.dll DevExpress.Data.v8.2.dll ...

    DevExpress 7.3.5控件集合

    DevExpress 7.3.5控件集合 ---------------------- DevExpress.Data.v7.3.dll DevExpress.Utils.v7.3.4.dll DevExpress.Utils.v7.3.dll DevExpress.Web.ASPxEditors.v7.3.dll DevExpress.Web.ASPxGridView....

    35个 最新 常用 DevExpress DLL 控件

    首先,DevExpress控件覆盖了多种UI组件,如表格(GridView)、图表(ChartControl)、网格(GridControl)、报表(Report)、表单设计器(XtraEditors)等。这些控件不仅在功能上强大,而且在视觉效果上也表现出色,...

    DevExpress8.3.2 vs2008编译通过

    DevExpress控件提供了丰富的UI元素,可以极大地提高开发效率并提供专业的用户界面体验。 标签中提到了"DevExpress"、"DX .net控件"、"UI"和"源代码",这表示压缩包不仅包含编译后的控件库,可能还包含了源代码。...

    DevExpress9.2完整版

    DevExpress9.2完整版 包含如下控件集: ---------------- DevExpress.BonusSkins.v9.2.dll DevExpress.Charts.v9.2.Core.dll DevExpress.Data.v9.2.Compact.dll DevExpress.Data.v9.2.dll DevExpress.Data.v9.2...

    DevExpress.XtraTreeList.Net.v1.7.0.Incl.Source

    The XtraTreeList Suite is the first comprehensive TreeList control for Visual Studio.NET. It was built from the ground up in C# and is optimized to take full advantage of the .NET Framework. The ...

    XtraTreeList资料文档

    XtraTreeList 是 DevExpress 开发的一款用于 Windows Forms 应用程序的高级树形控件,它提供了丰富的功能和自定义选项,适用于构建复杂的用户界面。该控件支持多种选择模式、自定义外观、事件处理以及数据绑定等特性...

    DevExpress之TreeList使用示例

    DevExpress的TreeList控件是.NET开发中的一个强大工具,尤其在数据展示和操作上提供了丰富的功能。本示例主要关注如何使用TreeList进行深层复杂类型绑定,这在处理层次结构数据时非常有用,例如组织结构、文件系统...

    Devexpress dxperience 13.1.5汉化资源

    DevExpress.XtraTreeList.Localization.TreeListResLocalizer.Active = new Dxper.LocalizationCHS.Win.XtraTreeListCHS(); DevExpress.Office.Localization.OfficeResLocalizer.Active = new Dxper.LocalizationCHS...

    DevExpress V12.2.5 汉化包zh-CN.rar

    - DevExpress.XtraTreeList.v12.2.resources.dll:树形列表控件的汉化资源。 - ...等等 每个DLL或RESX文件对应DevExpress的一个特定组件或模块,它们是实现汉化的关键。 总的来说,DevExpress V12.2.5汉化包的使用...

    .Net Dev第三方控件

    `.Net Dev第三方控件`,特别是DevExpress中的`XtraTreeList`控件,是用于Windows Forms应用程序开发的强大工具。DevExpress是一家知名的控件提供商,提供了一系列专业且美观的控件,适用于各种开发需求。`...

    详解在DevExpress程序中使用TreeList控件以及节点查询的处理

    在DevExpress程序中,TreeList控件是一个强大的工具,用于展示具有层次结构的数据。与微软的TreeView控件相比,TreeList控件提供了更多的功能和自定义选项,使得数据展示和管理更为便捷。本文将深入探讨如何在...

    devexpress 汉化

    #### 一、DevExpress控件包简介 1. **DevExpress.XtraEditors.Controls** - 这个控件包包含了最常用的控件,如文本框(`TextEdit`)、下拉列表(`ComboBoxEdit`)、按钮(`SimpleButton`)等。 - **汉化要点**:...

    C#drop拖放功能代码示例

    对于描述中提到的DevExpress控件,如ListBox和TreeView,它们是高级的UI元素,提供了更多的定制选项和功能。DevExpress控件通常具有更好的性能和用户体验,但实现拖放功能时,可能需要利用其特有的API。 1. **启用...

    DevExpress11.2.11重编译所需动态库

    5. DevExpress.XtraTreeList.v11.2.dll:树形列表控件,适用于层级数据展示。 6. DevExpress.XtraPivotGrid.v11.2.dll:透视网格组件,用于数据分析和报告。 7. DevExpress.XtraVerticalGrid.v11.2.dll:垂直网格...

    Winforn中DevExpress的TreeList中显示某路径下的所有目录和文件示例代码.zip

    在Windows Forms(Winforn)开发中,DevExpress控件库提供了丰富的UI组件,其中包括TreeList控件。TreeList控件可以展示数据的层次结构,常用于展现目录结构或组织架构等。本示例代码主要讲解如何利用C#编程语言和...

    自定义控件db Check TreeList源码

    描述中提到,要使用这个自定义控件,你需要先安装DevExpress控件包 for vs2005。DevExpress是一家知名软件公司,提供一系列高效、高性能的.NET开发工具,包括UI控件、报表系统等。安装这个包后,你可以使用其提供的...

    DevExpress TreeListLookUpEdit 判断有子节点时展开

    private void treeListLookUpEdit1_NodeDoubleClick(object sender, DevExpress.XtraTreeList.NodeEventArgs e) { if (e.Node.HasChildren) { treeListLookUpEdit1.CollapseNode(e.Node); } else { // 如果节点...

    XtraTreeList for Winforms

    DevExpress 的 XtraTreeList 控件是一种高级数据呈现组件,专门设计用于在 Windows Forms 应用程序中显示层次化的数据集。该控件支持丰富的功能,包括数据绑定、编辑、排序、过滤、汇总以及自定义外观等。本文档旨在...

Global site tag (gtag.js) - Google Analytics