Nodes 节点

server/2024/10/23 5:12:18/

Goto Tree List 树列表

Nodes 节点

Tree List 节点是组织成树状层次结构的数据行。

在这里插入图片描述

Nodes__6">Add New Nodes 添加新节点

如果 Tree List 具有数据源,则会自动生成节点(TreeListNode 类对象)。要在未绑定模式下添加节点,请调用“树列表设计器”对话框并切换到其“节点”选项卡。

在这里插入图片描述

Nodes_in_Code__10">Add New Nodes in Code 在代码中添加新节点

使用 TreeList.AppendNode 方法将新节点添加到 Tree List。

using DevExpress.XtraTreeList;
using DevExpress.XtraTreeList.Nodes;TreeListNode parentForRootNodes = null;
// Create a root node.
TreeListNode rootNode = tl.AppendNode(new object[] { "Alfreds Futterkiste", "Germany, Obere Str. 57", "030-0074321" }, parentForRootNodes);
// Create the root node's child node.
tl.AppendNode(new object[] { "Suyama, Michael", "Obere Str. 55", "030-0074263" }, rootNode);

使用以下参数指定新节点的单元格值及其在树层次结构中的位置:

  • nodeData - 用于初始化新节点的单元格值的值数组或 DataRow 对象。数组的值类型必须与数据源中的列类型匹配;否则,将引发异常。

  • parentNode - 一个 TreeListNode 对象,用于指定新节点的父节点。此值将分配给 ParentNode 属性。要附加根节点,请使用 null(VB 中的 Nothing)。

    如果您在 nodeData 参数的相应字段中指定了父节点,则 parentNode 参数应指定相同的节点。

  • parentNodeId - 一个整数值,该值通过其 Id 属性值指定新节点的父节点。

使用以下参数指定新节点中显示的图像。要指定图像,请使用 SelectImageList 集合中的图像索引。

  • imageIndex - 节点未聚焦时显示的图像。此值分配给 ImageIndex 属性。
  • selectImageIndex - 聚焦节点时显示的图像。此值分配给 SelectImageIndex 属性。

使用 checkState 参数指定是否选中节点。如果启用了 AllowRecursiveNodeChecking 选项,则该方法将更新父节点和子节点。

使用 childrenCheckBoxStyle 参数可指定新节点的子节点是显示复选框、单选按钮,还是两者都不显示。此值将分配给 ChildrenCheckBoxStyle 属性。

使用 tag 参数将自定义数据与新节点关联。此值分配给 Tag 属性。

Nodes__46">Access Nodes 访问节点

您可以使用 TreeList.Nodes 属性访问控件根级别的节点。

//get the second node by its index
TreeListNode node = treeList1.Nodes[1];
//get all nodes that contain the "R&D" caption
var nodes = treeList1.Nodes.Where(n => n.GetDisplayText("Department").Contains("R&D"));

每个节点都有一个 TreeList.Nodes 存储子节点的集合。您可以使用节点迭代器或以下 API 来检索这些集合中的节点:

  • TreeList.FocusedNode - 获取或设置聚焦节点。
  • TreeList.FindNodeByFieldValue - 按字段值返回节点。
TreeListNode node = treeList1.FindNodeByFieldValue("Employee Name", "Kate Mossheart");
  • TreeList.FindNodeByKeyID - 按节点的键字段值返回节点。
  • TreeList.FindNodeByID - 返回由其标识符指定的节点。

Node Icons 节点图标

节点单元格可以包含一个图标。本节介绍可用于在单元格中显示图像的各种方法。

Select and State Icons Select 和 State 图标

您可以将 select 和 state 图标应用于节点。

在这里插入图片描述
如果 TreeListOptionsView.RowImagesShowMode 属性设置为 InCell,则图标将显示在节点单元格内。

在这里插入图片描述
有关更多信息,请参阅以下帮助主题:节点映像。

Conditional Formatting 条件格式

当您有一组显示不同值或值范围的图标时,请使用此方法。在下图中,指示市场份额增长的图标显示在单元格值旁边。

在这里插入图片描述
有关更多信息,请参阅以下帮助主题:条件格式。

Combo Box with Images 带图像的组合框

您可以使用此方法为单元格值提供图像,也可以将文本条目完全替换为这些图像。下面的代码将复选框替换为包含布尔值的列中的图标。

在这里插入图片描述

using DevExpress.XtraEditors.Repository;RepositoryItemImageComboBox repositoryItemDescriptionComboBox;
repositoryItemDescriptionComboBox = new RepositoryItemImageComboBox();
repositoryItemDescriptionComboBox.AutoHeight = false;
repositoryItemDescriptionComboBox.GlyphAlignment = DevExpress.Utils.HorzAlignment.Center;
repositoryItemDescriptionComboBox.SmallImages = svgImageCollection;
repositoryItemDescriptionComboBox.Items.Add("", true, 3);treeList1.RepositoryItems.Add(repositoryItemDescriptionComboBox);
descriptionColumn.ColumnEdit = repositoryItemDescriptionComboBox;

Context Icons in Text Box 文本框中的上下文图标

RepositoryItemTextEdit.ContextImageOptions 指定分配给文本框的栅格或矢量图标。您可以在使用此存储库项目的所有单元格中显示相同的图标。要在单个单元格中显示不同的图标,请创建多个 RepositoryItemTextEdit 对象并处理 TreeList.CustomNodeCellEdit 事件以将这些存储库项目分配给单元格。在下面的示例中,将带有上下文图像的文本框分配给包含“Arthur Miller”的单元格。

在这里插入图片描述

using DevExpress.XtraEditors.Repository;RepositoryItemTextEdit repositoryItemTextEdit2;
repositoryItemTextEdit2 = new RepositoryItemTextEdit();
repositoryItemTextEdit2.ContextImageOptions.SvgImage = svgImageCollection[0];
treeList1.RepositoryItems.Add(repositoryItemTextEdit2);private void treeList1_CustomNodeCellEdit(object sender, GetCustomNodeCellEditEventArgs e) {TreeList treeList = sender as TreeList;if(e.Node.Id != TreeList.NewItemNodeId && e.Column == employeeColumn && treeList.GetRowCellValue(e.Node, e.Column).ToString() == "Arthur Miller") {e.RepositoryItem = repositoryItemTextEdit2;}
}

Unbound Columns 未绑定的列

如果您需要一个不与特定数据源值关联的列(带有图像),请使用 RepositoryItemPictureEdit 对象创建一个未绑定的列作为就地编辑器。处理 TreeList.CustomUnboundColumnData 事件以向此列提供图像。

HTML Formatting HTML 格式

使用 TreeList.HtmlImages 集合和 Image HTML 标签将图像嵌入到单元格中。请注意,此方法使单元格不可编辑。

treeList1.HtmlImages = svgImageCollection1;
treeList1.RowHeight = 60;
TreeListColumn unbound = new TreeListColumn();
unbound.UnboundDataType = typeof(string);
unbound.FieldName = "unboundImageColumn";
unbound.Visible = true;
unbound.Caption = "Icon";
treeList1.Columns.Add(unbound);
RepositoryItemHypertextLabel htLabel = new RepositoryItemHypertextLabel();
htLabel.HtmlImages = svgImageCollection1;
treeList1.RepositoryItems.Add(htLabel);
unbound.ColumnEdit = htLabel;
treeList1.CustomUnboundColumnData += TreeList1_CustomUnboundColumnData;private void TreeList1_CustomUnboundColumnData(object sender, DevExpress.XtraTreeList.TreeListCustomColumnDataEventArgs e) {if (e.Column.Caption == "Icon") {//image from a collectione.Value = "<image=add_32x32.png>";//image from resources//e.Value = "<image=#_589812_200>";}
}

Draw a Cell 绘制单元格

处理 CustomDrawNodeCell 事件以重新绘制单元格,并绘制自定义图像和形状。在此示例中,在包含“Arthur Miller”的单元格中绘制了一张图像。

在这里插入图片描述

private void treeList1_CustomDrawNodeCell(object sender, CustomDrawNodeCellEventArgs e) {TreeList treeList = sender as TreeList;if (e.Node.Id != TreeList.NewItemNodeId && e.Column == employeeColumn && treeList.GetRowCellValue(e.Node, e.Column).ToString() == "Arthur Miller") {e.Cache.DrawImage(imageCollection1.Images[0], e.Bounds.X + offsetX, e.Bounds.Y + offsetY);}
}

Node Indents 节点缩进

节点缩进是控件的边界与节点的第一个单元格的边界之间的距离。TreeList.TreeLevelWidth 属性指定根节点的此距离。

在这里插入图片描述

Node Checkboxes and Radio Buttons Node 复选框和单选按钮

您可以在某些树级别向 TreeList 节点添加复选框或单选按钮。

在这里插入图片描述
要设置或检索节点检查状态,请使用 TreeList 控件的方法。在绑定模式下,您可以将节点检查状态与数据源字段同步。有关更多信息,请参阅以下帮助主题:节点检查 - 复选框和单选按钮。

Preview Sections 预览部分

预览部分是显示在节点下的所有列中的不可编辑注释。
在这里插入图片描述
有关更多信息,请参阅以下帮助主题:预览部分。

Examples 例子

  • 如何:遍历节点并计算特定级别的节点数
  • 如何:循环访问节点和折叠特定节点
  • 如何:创建自定义节点并指定各个节点的高度
  • 如何:启用自动高度调整

http://www.ppmy.cn/server/134080.html

相关文章

WSL2 Linux子系统调整存储位置

WSL2 默认不支持修改Linux 安装路径&#xff0c;官方提供的方式&#xff0c;只有通过导出、导入的方式实现Linux子系统的迁移。 修改注册表的方式官方不推荐&#xff0c;没有尝试过&#xff0c;仅提供操作方式(自行评估风险&#xff0c;建议备份好数据) 1. 打开 **注册表编辑器…

多IP连接

一.关闭防火墙 systemctl stop firewalld setenforce 0 二.挂在mnt mount /dev/sr0 /mnt 三.下载nginx dnf install nginx -y 四.启动nginx协议 systemctl start nginx 五.修改协议 vim /etc/nginx/nginx.conf 在root前加#并且下一行添加 root /www:&#xff08;浏…

多个样式相同的表格内容合并,将多个excel表相同坐标位置的内容追加到一个excel表的单元格里

第一步&#xff1a;先将Excel文件合并 合并之后出现多个Sheet页 第二步&#xff1a;点击开发工具&#xff0c;VB编辑器 第三步&#xff1a;写VB代码 Sub CombineCells()Dim ws As WorksheetDim targetWs As WorksheetDim i As Integer, j As IntegerSet targetWs ThisWorkb…

滚雪球学Redis[5.2讲]:Redis持久化优化深度解析:RDB与AOF的策略选择与实践

全文目录&#xff1a; &#x1f6a6;前言&#x1f4e6;5.2 Redis的持久化优化⚙️5.2.1 Redis持久化的背景与重要性&#x1f527;5.2.2 RDB与AOF的优化策略&#x1f4a1;RDB持久化优化建议&#x1f4a1;AOF持久化优化建议 &#x1f504;5.2.3 磁盘I/O性能的影响与优化&#x1f…

面试感想以及个人规划

昨天和一位面试官的交流让我受益匪浅&#xff0c;他的见解非常实用&#xff0c;尤其是关于如何准备面试和提升技术能力的建议。 首先&#xff0c;他强调面试过程其实是一个引领面试官的过程。当你能够引导面试官走向一个他难以继续提出问题的阶段时&#xff0c;面试就可以顺利…

建库建表练习

目录 根据以下需求完成图书管理系统数据库及表设计&#xff0c;并建库建表&#xff0c;并截图创建表的详细信息(desc 表名),不用添加数据 1. 用户表: 字段: 姓名&#xff0c;用户名&#xff0c;密码&#xff0c;电话&#xff0c;住址&#xff0c;专业及年级 2. 图书表: 字段: 图…

前端将表格页面导出为 PDF 并适配 A4纸张的思路

文章目录 最终效果技术依赖包优缺点实现思路代码 最终效果 这个是原页面 这个是前端处理成 pdf 的效果 技术依赖包 vue2 element html2canvas jsPDF html2Canvas 官网 jsPDF 官网 优缺点 优点&#xff1a;就是不需要后端处理 pdf 了&#xff0c;原本想着把 dom 和 cs…

使用 Git LFS(大文件存储)

Git LFS&#xff08;Large File Storage&#xff09;是一种扩展 Git 的工具&#xff0c;旨在更有效地管理大文件的版本控制。它通过将大文件的内容存储在 Git 之外来解决 Git 在处理大文件时的性能问题。 主要特点 替代存储&#xff1a;Git LFS 不直接将大文件存储在 Git 仓库…