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;
}
鼠标单击节点时,获取节点信息

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 另外版)

dev 的XtraTreeList很强大,可以选择节点然后直接进行拖动,本篇暂时写这么多,如果有更新的会另开随笔记录下来,更多功能待发觉;
大家有更好的建议,请多多指导
转载请保留地址http://www.cnblogs.com/vincentluo
Dev XtraTreeList 学习的更多相关文章
- FMS Dev Guide学习笔记
翻译一下其中或许对游戏开发有用的一个章节 一.开发交互式的媒体应用程序 1.共享对象(Shared objects) ----关于共享对象 使用共享对象可以同步用户和存储数据.共享对象 ...
- FMS Dev Guide学习笔记(远程共享对象)
一.开发交互式的媒体应用程序1.共享对象(Shared objects) ----远程共享对象 在你创建一个远程共享对象之前,创建一个NetConnection对象并且连接到服务器.一旦你创建了 ...
- FMS Dev Guide学习笔记(SharedBall)
一.开发交互式的媒体应用程序1.共享对象(Shared objects) ----SharedBall example 这个SharedBall example创建了一个临时的远程共享对象.类似于多人 ...
- FMS Dev Guide学习笔记(权限控制)
一.开发交互式的媒体应用程序 1.关于访问(权限)控制 当一个用户访问服务器的时候,默认情况下,他可以访问所有的流媒体文件和共享对象.但是你可以使用服务端ActionScript为流媒体文件和 ...
- FMS Dev Guide学习笔记(验证客户端)
一.开发交互式的媒体应用程序 1.使用客户端对象的属性 当一个客户端连接上服务器上的一个应用,服务端就会创建一个包含这个客户端信息的客户端对象并且将它传递给application.onConn ...
- [转载]FMS Dev Guide学习笔记(验证用户)
一.开发交互式的媒体应用程序 1.使用外部资源验证用户 对于有限数量的客户,请求用户名密码,然后通过外部资源(像数据库.LDAP服务或其它访问授权服务)验证它们,是可行的. a.SWF在请求连 ...
- [转载]FMS Dev Guide学习笔记(验证客户端二)
一.开发交互式的媒体应用程序 1.使用unique key a. 在客户端ActionScript中创建一个unique key,如下代码所示,unique key的组成为本地电脑时间和一个随机数连接 ...
- Python 3 Anaconda 下爬虫学习与爬虫实践 (1)
环境python 3 anaconda pip 以及各种库 1.requests库的使用 主要是如何获得一个网页信息 重点是 r=requests.get("https://www.goog ...
- liunux中的标准输出。以及常用的 2>dev/null 命令的含义
了解Linux怎样处理输入和输出是非常重要的.一旦我们了解其原理以后,我们就可以正确熟练地使用脚本把内容输出到正确的位置.同样我们也可以更好地理解输入重定向和输出重定向. 首先我们来了解一下linux ...
随机推荐
- 【转】Java多线程学习
来源:http://www.cnblogs.com/samzeng/p/3546084.html Java多线程学习总结--线程概述及创建线程的方式(1) 在Java开发中,多线程是很常用的,用得好的 ...
- 【HDOJ】4347 The Closest M Points
居然是KD解. /* 4347 */ #include <iostream> #include <sstream> #include <string> #inclu ...
- Android开发之多线程下载、断点续传、进度条和文本显示
代码实现了在Android环境下的多线程下载.断点续传.进度条显示和文本显示百分数: import java.io.BufferedReader; import java.io.File; impor ...
- nginx+lua+redis实现logserver
http://www.baidu.com/s?wd=nginx lua&pn=10&oq=nginx lua&tn=baiduhome_pg&ie=utf-8& ...
- struts2启动报错com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1
好久没有搞struts2,今天配置strut2.2.1,启动时遇到个小问题.记录下. tomcat启动报错: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
- PLSQL Developer调试 存储过程和触发器
1. 打开PL/SQL Developer如果 在机器上安装了PL/SQL Developer的话,打开PL/SQL Developer界面输入 用户名,密码和host名字,这个跟在程序中web.co ...
- poj2192
初看这道题,以为是先用SA和SC求LCS,再从SC中把SA剔除,看剩下来的是不是SB(……) 显然不对;因为SC与SA的公共子串不止一种,判断不一定正确. 于是考虑SC中每一个字符,如果能够匹配,那么 ...
- (转载)memcpy的几个实现版本
(转载)http://blog.sina.com.cn/s/blog_4d3a41f40100cvza.html 实现void *memcpy(void *to, const void *from, ...
- bindService和startService的区别
区别: startService,关闭服务退出activity,service仍然处于后台运行 bindService,关闭服务退出activity直接stopService,停止服务 bindSer ...
- API性能测试基本性能指标及要求
略 适用 Lifeix 所有后台应用. 1.事务(Transaction) 在web性能测试中,一个事务表示一个“从用户发送请求->web server接受到请求,进行处理-> web s ...