TreeList
来源:互联网 发布:淘宝知识产权处罚细则 编辑:程序博客网 时间:2024/04/28 13:20
如果你要的数据是分层级的,那么这个控件非常适合您。
动态加载法
这个也有两种动态加载法:推荐!!
TreeList控件跟GridView相似。GridView是由行和列组成,而TreeList是由节点和列组成。
使用数组方式为TreeList赋值:
第一步:把DataTable转换成数组在把它绑定,这种方式要先把DataTableGroupBy一下哦,要不然可能会出现多个相同节点的。
private void LoadStaff() { dtStaff = DbHelperSQL.Query("select * from VEICompanyDeptStaff").Tables[0];//这个表已经group by好了 int row = dtStaff.Rows.Count;//获取员工总行数 string CompanyID = null; string DeptID = null; tlStaff.BeginUpdate(); TreeListColumn clCompanyName = tlStaff.Columns.Add(); clCompanyName.VisibleIndex = 0; clCompanyName.Caption = "公司"; TreeListColumn clDeptName = tlStaff.Columns.Add(); clDeptName.VisibleIndex = 1; clDeptName.Caption = "部门"; TreeListColumn clStaffName = tlStaff.Columns.Add(); clStaffName.VisibleIndex = 2; clStaffName.Caption = "员工"; TreeListColumn clCompanyID = tlStaff.Columns.Add(); clCompanyID.VisibleIndex = -1;//隐藏 clCompanyID.Caption = "公司ID"; TreeListColumn clDeptID = tlStaff.Columns.Add(); clDeptID.VisibleIndex = -1; clDeptID.Caption = "部门ID"; TreeListColumn clStaffID = tlStaff.Columns.Add(); clStaffID.VisibleIndex = -1; clStaffID.Caption = "员工ID"; tlStaff.EndUpdate(); TreeListNode CoNode = null, DeptNode = null,StaffNode = null; tlStaff.Nodes.Clear();//清空所有节点。 tlStaff.BeginUnboundLoad(); //TreeList控件显示的数据一有变更,它就会刷新一次,BeginUnboundLoad()方法至EndUnboundLoad()中的代码对TreeList控件做出的更改不会使它刷新,已提升性能。 foreach (DataRow dr in dtStaff.Rows) { if (CompanyID == null || CompanyID != dr["ID"].ToString())//如果没有该公司就添加一个根节点。 { /* 其实直接CoNode = tlStaff.AppendNode(new string[] { "名字", "ID" }, null);也是可以的, * TreeList会自动为你传进去数组的二个字段创建两列,你在运行时刻同样可以使用代码 * TreeList.Columns[该列名的下标]来获取和设置它的属性 */ CoNode = tlStaff.AppendNode(null, null); CoNode[clCompanyID] = dr["ID"];//为公司节点的ID列指定值 CoNode[clCompanyName] = dr["CompanyName"];//为公司节点的Name列指定值 CompanyID = dr["ID"].ToString(); } if (DeptID != dr["DeptID"].ToString())//如果没有部门就在公司节点下添加一个子节点。 { DeptNode = tlStaff.AppendNode(null, CoNode); DeptNode[clDeptID] = dr["DeptID"]; DeptNode[clDeptName] = dr["DeptName"]; DeptID = dr["DeptID"].ToString(); } StaffNode = tlStaff.AppendNode(null, DeptNode);//添加员工子节点。 StaffNode[clStaffName] = dr["StaffName"]; StaffNode[clStaffID] = dr["StaffID"]; } tlStaff.EndUnboundLoad(); }
效果图:
不是很理想?那就做成一列的。把显示的这三列删掉换成一列显示。
删掉了公司、部门列后,把其他列的内容都添加到员工上面去,ID就不用了,因为它不显示。效果图:
完美的英文怎么拼来着?待我google一下,Perfect!
- TreeList
- TreeList使用方法
- TreeList概念
- Dev TreeList
- TreeList <上>
- TreeList<中>
- TreeList<下>
- DevExpress--TreeList
- Deverpress之TreeList、Grid
- TREELIST 与数据库绑定
- TreeList .Net源代码
- TreeList应用(一)
- TreeList应用(二)
- TreeList应用(三)
- 通过hash构建treelist
- 手工添加 treelist 节点
- 关于treelist的一些
- Deverpress之TreeList、Grid
- Android 中的 requestWindowFeature
- pygame安装二
- Android/Linux USB Gadget:三层架构
- 资料共享之后,如何切换用户
- 从FTP模块学习先进的诊断技术(Erlang Trace机制)
- TreeList
- 为OpenCV产生正样本描述文件写的一个小程序
- use nodemailer to send gmail
- HDOJ搜索题(总计100题)
- Linux Shell编程入门教程(新手必备)
- Magento 获取当前页面body的class
- 补充
- 整数溢出
- hdu 21085 Holding Bin-Laden Captive! (母函数的应用)