DevExpress控件使用系列--ASPxTreeList
- 控件功能 结合列表控件及树控件的优点,在列表控件中实现类型树的多层级操作
- 官方说明 http://documentation.devexpress.com/#AspNet/clsDevExpressWebASPxTreeListASPxTreeListtopic
- 使用说明
- 绑定的数据源需具备当前节点编号、父级节点编号等字段
- 通过设置属性下列属性控件自动实现层级关系,初始化只显示第一层,可通过+/-图标展开/收缩层级关系
KeyFieldName="Id" ParentFieldName="ParentId"
- 代码示例
- aspx界面设置
<dx:ASPxTreeList ID="treeList" runat="server" AutoGenerateColumns="False" KeyFieldName="CategoryId"Width="100%" ParentFieldName="ParentId" ClientInstanceName="treeList" OnNodeDeleting="TreeList_NodeDeleting"OnNodeInserting="TreeList_NodeInserting" OnNodeUpdating="TreeList_NodeUpdating"OnCellEditorInitialize="TreeList_CellEditorInitialize" OnNodeValidating="TreeList_NodeValidating"OnHtmlDataCellPrepared="treeList_HtmlDataCellPrepared" OnCommandColumnButtonInitialize="treeList_CommandColumnButtonInitialize"><Columns><dx:TreeListDataColumn FieldName="Name" Caption="名称"></dx:TreeListDataColumn><dx:TreeListComboBoxColumn FieldName="Status" Caption="类型"></dx:TreeListComboBoxColumn><dx:TreeListCommandColumn Caption="编辑功能"><EditButton Visible="true" Text="编辑"></EditButton></dx:TreeListCommandColumn><dx:TreeListCommandColumn Caption="新建功能"><NewButton Visible="true" Text="新建"></NewButton></dx:TreeListCommandColumn><dx:TreeListCommandColumn Caption="删除功能"><DeleteButton Visible="true" Text="删除"></DeleteButton></dx:TreeListCommandColumn></Columns><SettingsEditing Mode="PopupEditForm" /><SettingsPopupEditForm Caption="编辑" Width="500" Modal="true" HorizontalAlign="Center"VerticalAlign="WindowCenter" /><SettingsBehavior AllowFocusedNode="True" AllowDragDrop="false" ProcessSelectionChangedOnServer="false" /><Settings ShowTreeLines="true" GridLines="Horizontal" /><SettingsText CommandEdit="编辑" RecursiveDeleteError="该节点有子节点,不能删除" CommandNew="新建资源"ConfirmDelete="确定要删除吗?" CommandUpdate="更新" CommandDelete="删除" CommandCancel="取消" /></dx:ASPxTreeList> RecursiveDeleteError属性:当点击删除链接时,控件会自动判断是否有子节点,如有则给与提示并不触发删除事件
- aspx.cs后台代码设置
- 绑定数据
this.treeList.DataSource =数据源this.treeList.DataBind()
- HtmlDataCellPrepared事件(对每个单元格进行处理,通常用于根据类型编号显示文字描述)protected void treeList_HtmlDataCellPrepared(object sender, TreeListHtmlDataCellEventArgs e){if (e.Column.FieldName == "Status"){switch (e.CellValue.ToInt()){case 1:e.Cell.Text = "正常";break;case 0:e.Cell.Text = "禁用";break;default:e.Cell.Text = "未知";break;}}}
- CommandColumnButtonInitialize事件(用于根据条件对命令按钮进行处理,如隐藏/显示新增、编辑、删除链接等)
protected void treeList_CommandColumnButtonInitialize(object sender, TreeListCommandColumnButtonEventArgs e){if (e.NodeKey != null){//Level不等于1的数据行,隐藏新增按钮TreeListNode node = this.treeList.FindNodeByKeyValue(e.NodeKey.ToString()); //e.NodeKey 主键值if (node.GetValue("Level").ToInt() != 1 && e.ButtonType == TreeListCommandColumnButtonType.New){e.Visible = DefaultBoolean.False;}}}
- CellEditorInitialize事件(新增/编辑窗体初始化,代码为初始化Status列的值)protected void TreeList_CellEditorInitialize(object sender, DevExpress.Web.ASPxTreeList.TreeListColumnEditorEventArgs e){if (e.Column.FieldName == "Status"){var combo = e.Editor as ASPxComboBox;combo.Items.Add("1", 1);combo.Items.Add("0", 0);combo.SelectedIndex = 0;if (this.treeList.IsEditing){combo.SetComboboxChecked(e.Value.ToInt());}}}
- NodeInserting事件 (新增事件)protected void TreeList_NodeInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e){}6、NodeUpdating事件(修改事件)protected void TreeList_NodeUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e){ }7、NodeDeleting事件(删除事件)protected void TreeList_NodeDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e){}
8、NodeValidating事件(验证事件,新增或修改前触发此事件进行验证,验证通过再触发 新增、修改事件)
protected void TreeList_NodeValidating(object sender, DevExpress.Web.ASPxTreeList.TreeListNodeValidationEventArgs e){if (b.Value || b == null){AddError(e.Errors, "Name", "名称已存在,请勿重复添加.");}if (string.IsNullOrEmpty(e.NodeError) && e.Errors.Count > 0){e.NodeError = "请改正错误。";} }
DevExpress控件使用系列--ASPxTreeList的更多相关文章
- DevExpress控件使用系列--ASPxGridView+Popup+Tab
1.控件功能 列表控件展示数据.弹框控件执行编辑操作.Tab控件实现多标签编辑操官方说明 2.官方示例 2.1 ASPxGridView http ...
- DevExpress控件使用系列--ASPxUploadControl(图片上传及预览)
1.控件功能 列表控件展示数据.弹框控件执行编辑操作.Tab控件实现多标签编辑操官方说明 2.官方示例 2.1 ASPxImage http: ...
- DevExpress控件的GridControl控件小结
DevExpress控件的GridControl控件小结 (由于开始使用DevExpress控件了,所以要点滴的记录一下) 1.DevExpress控件组中的GridControl控件不能使横向滚动条 ...
- DevExpress控件库 开发使用经验总结3 制作项目安装包
2015-01-27 使用DevExpress控件包开发C/S项目完成后,部署前需要制作本地安装包.本文还是使用“SetupFactory”安装工厂来制作安装包.在以前的系列文章中详细介绍过该工具的使 ...
- DevExpress控件库 开发使用经验总结1 DevExpress简介、安装、使用
2015-01-24 最近公司开发的WinForm客户端图书行业ERP管理系统,界面端采用了DevExpress控件库.界面效果非常绚丽,类似于Office2007.2010的界面风格. 其中的控件功 ...
- DevExpress控件与VS和.NET各个版本的支持情况
如下图所示,绿色Yes代表支持,红色No代表不支持.对于有些人觉得装了dev后,vs工具箱没有,一般都是以下两大问题: 1.要么你的Dev的版本不支持你当前的VS版本,没有很正常. 2.要么你的项目的 ...
- DevExpress控件安装、汉化使用教程
前言 DevExpress是一个庞大的控件库,也很是好用(没用过,听说),但是要收费. 网上关于DevExpress的教程满天飞,我找了一下午也没找到正确的安装.简单实用教程,还是自己摸索吧. 自己动 ...
- 在Winform开发框架中,利用DevExpress控件实现数据的快速录入和选择
在实际的项目开发过程中,有好的控件或者功能模块,我都是想办法尽可能集成到我的WInform开发框架中,这样后面开发项目起来,就可以节省很多研究时间,并能重复使用,非常高效方便.在我很早之前的一篇博客& ...
- DevExpress控件使用经验总结- GridView列表行号显示操作
DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件.本文主要介绍我在使用DevExpress控件过程中,遇到或者发现的一些问题解决方案,或者也可以所示一 ...
随机推荐
- js 用window.open(参数) 打开新窗口,在新窗口怎么获取传过来的参数
unction openwin(taskno){window.open ('playIt.jsp?taskno='+taskno,'play','height=100,width=400,toolba ...
- swift创建对象use of undeclared type 自己的类
在swift项目中,引用自己创建的类,编译会成功的,但是会出现红色感叹号,类似报错,如:swift创建对象use of undeclared type 自己的类,或者 use of unresolv ...
- 【学习笔记】Mac OS X系统介绍
一.Dock *相当于Windows的快速启动栏,用来存放常用软件的图标 *单击软件图标即可打开相应的软件 *右击软件图标还有其他菜单选项:比如退出软件 *图标下边的黑点代表程序正在运行中,并没有完全 ...
- Dicom格式文件解析器
转自:http://www.cnblogs.com/assassinx/archive/2013/01/09/dicomViewer.html Dicom全称是医学数字图像与通讯,这里讲的暂不涉及通讯 ...
- error at ::0 can't find referenced pointcut performance
严重: Caught exception while allowing TestExecutionListener [org.springframework.test.context.support. ...
- 你应该知道的9个优秀的CSS框架
前端开发是一项非常繁琐的工作,你不仅需要拥有和别人不一样的审美观和设计观,而且需要了解诸如HTML.CSS.JavaScript等错综复杂的技术,因此选择一些优秀的CSS框架或许可以帮助你大大提高工作 ...
- 博客转移到 海胖网 http://haipz.com/ 希望你能支持我们!
博客转移到 海胖网 http://haipz.com/ 希望你能支持我们! 博客转移到 海胖网 http://haipz.com/ 希望你能支持我们! 博客转移到 海胖网 http://haipz.c ...
- JVM调优总结 -Xms -Xmx -Xmn -Xss(转载)
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作 ...
- js----对象的创建
js创建对象的三种方法 在介绍之前一定要弄清楚一个概念,比如var a = new Object(); 这里的a并不是一个对象,而是一个对象的实例. 一.用Json创造 var a = {b:1,c: ...
- php获取服务器时间的代码
php获取服务器时间的代码. 用php的date函数即可来获取服务器上的时间: <?php //将时区设置为中国 date_default_timezone_set("PRC&quo ...