Dev XtraTreeList 学习

本文转载:http://www.cnblogs.com/VincentLuo/archive/2012/01/06/2313983.html

一、设置载请保留地址http://www.cnblogs.com/vincentluo

     使用dev的树控件(XtaTreeList)来显示有父子关系的分类,

数据库表中只要三列:ParentID,CategoryID,CategoryName;

将控件的属性ParentFieldName设置为ParentID,属性KeyFieldName设置为CategoryID;

先上图,如下图所示:

          点击Run Designer,先添加两列,设置他们的FieldName,这样用来绑定数据;分类编号的Visible=false可以进行隐藏;

如下图:

二、绑定 载请保留地址http://www.cnblogs.com/vincentluo

      数据绑定很简单了

返回DataTable就可以了:

   private void BindCategories()
        {
            DataTable dt = Info.Get_Categories();
            tlCategoryList.DataSource = dt;
        }
三、操作载请保留地址http://www.cnblogs.com/vincentluo

      鼠标单击节点时,获取节点信息

private string CategoryID = null;
        private string CategoryName = null;
        private void tlCategoryList_MouseDown(object sender, MouseEventArgs e)
        {
            #region 获取点击节点的信息
            TreeListHitInfo hi = tlCategoryList.CalcHitInfo(e.Location);
            TreeListNode CurrentNode = hi.Node;
            if (CurrentNode != null)
            {
                CategoryID = CurrentNode.GetValue("CategoryID").ToString();
                CategoryName = CurrentNode.GetValue("CategoryName").ToString();
            }
            #endregion
            if (e.Button == MouseButtons.Left)//左键
            {
                //Do something
                lblCategoryName.Text = CategoryName;
            }
            else if (e.Button == MouseButtons.Right)//右键
            {
                //Do something
            }
        }

另:右键的弹出菜单使用了ContextMenuStrip,添加相关节点,绑定到XtaTreeList即可:设置XtaTreeList的ContextMenuStrip

菜单的单击事件:

 private void treeShowMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            ShowDialogForm sdf = new ShowDialogForm("提示","正在加载,请稍候......");
            ToolStripItem item = e.ClickedItem;

            if (item.Name == "MenuAddCategory")
            {
                CategoryEditFrm.GetInstance(-1,0);
            } 
            if (item.Name == "MenuAddChildCategory")
            {
                CategoryEditFrm.GetInstance(int.Parse(CategoryID), 1);
            }
            if (item.Name == "MenuEditCategory")
            {
                CategoryEditFrm.GetInstance(int.Parse(CategoryID),2);
            }
            else if (item.Name == "MenuEditLink")
            {
                LinkEditFrm.GetInstance();
            }

然后进入编辑页面,如下图:

保存提示:(提示效果见:Dev 等待提示 WaitDialogForm 另外版

四、最后 转载请保留地址http://www.cnblogs.com/vincentluo

    dev 的XtraTreeList很强大,可以选择节点然后直接进行拖动,本篇暂时写这么多,如果有更新的会另开随笔记录下来,更多功能待发觉;

大家有更好的建议,请多多指导

转载请保留地址http://www.cnblogs.com/vincentluo

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博客

ExtJs十四(ExtJs Mvc图片管理之五swfupload)

经过前几节系列文章,现在只剩下利用swfupload来上传图片的功能了,在ExtJs十一(ExtJs Mvc图片管理之一)中有它的下载地址和加入项目的说明。

1772
来自专栏web开发

前后端分离跨服务器文件上传-Java SpringMVC版

 近来工作上不上特别忙,加上对后台java了解一点,所以就抽时间,写了一个java版本的前后端分离的跨服务器文件上传功能,包括前后端代码。 一、Tomcat服务...

2.8K8
来自专栏极客猴

Django 学习笔记之表单

本文是自己 Django 学习笔记系列中第 8 篇,算是基础知识篇章中最后一篇笔记。后续的笔记内容会相对比较综合。所以建议大家要把前面的内容,包括本篇笔记掌握。...

1053
来自专栏恰同学骚年

ASP.NET页面周期学习笔记之一

ASP.NET页面生命周期——理解:重中之重!!! 1.基本概念:所谓的页面生命周期,指的是一个ASP.NET页面类对象从初始化到销毁经过的步凑过程; 2.大致...

773
来自专栏GuZhenYin

C#使用Xamarin开发可移植移动应用(5.进阶篇显示弹出窗口与通讯中心)附源码

前言 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 没啥好说的.开干吧. 今天...

2185
来自专栏kwcode

MVC 获取路由的 URL 参数值和默认值的集合。

跟aspx页面不一样 用Request 获取不到路由配置的 参数 可以采用下面方法获取 public ActionResult List() {...

2706
来自专栏微信公众号:Java团长

Intellij IDEA神器居然还有这些小技巧

Intellij IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜。出于对Intellij IDEA的喜爱,我决定写一个与其相关的专...

892
来自专栏Danny的专栏

机房收费系统(VB.NET)——超详细的报表制作过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1993
来自专栏Python小屋

Python使用matplotlib绘制正多边形逼近圆周

运行结果:用鼠标单击或拖动Slider组件并修改其值,单击按钮组件可以恢复Slider组件的默认值6。

2122
来自专栏前端萌媛的成长之路

iframe+postMessage实现跨域通信

2934

扫码关注云+社区