当前位置: 首页 > news >正文

Filter and Search 筛选和搜索

Goto Data Grid 数据网格

Filter and Search 筛选和搜索

Filter Drop-down Menus (Excel-style) 筛选器下拉菜单(Excel 样式)

要调用列的筛选器下拉菜单,请单击列标题中的筛选器图标。在 “Values” 选项卡中,用户可以从 Data Grid 显示的单元格值中选择特定的单元格值。

在这里插入图片描述
“过滤器”选项卡为用户提供了更广泛的过滤器选项池。例如,当用户按日期筛选数据时,您可以仅显示与上周对应的记录。

在这里插入图片描述
过滤器下拉菜单的内容取决于相关网格列显示的数据类型。例如,下图说明了当数据按数字列筛选时,此菜单的外观。

在这里插入图片描述
这种类型的过滤器下拉菜单称为 “Excel-style”,是 v17.1 及更高版本中的默认过滤器菜单类型。

Related API 相关 API

  • GridOptionsCustomization.AllowFilter — 禁用整个数据网格的数据筛选功能。
  • OptionsColumnFilter.AllowFilter — 禁用特定列的筛选功能。
  • ColumnView.ColumnFilterChanged — 当列的筛选条件更改时发生。当 Find Panel 完成搜索时,也会引发此事件。
  • ColumnViewOptionsFilter.ColumnFilterPopupMode — 如果您的 DevExpress 安装版本低于 v17.1,请将此设置切换到 Excel 以启用 Excel 样式的筛选器下拉菜单。
  • ColumnView.OptionsFilter — 提供对影响所有列的筛选器菜单的设置的访问。有关可用设置的列表,请参阅 ColumnViewOptionsFilter 类成员。
  • GridColumn.OptionsFilter — 提供对特定列的筛选设置的访问。有关可用设置的列表,请参阅 OptionsColumnFilter 类成员。
  • ColumnView.ShowFilterPopupExcel — 处理此事件以自定义 Excel 样式的筛选器。

请参阅以下主题以了解如何动态自定义 Excel 样式的菜单:高级筛选器和搜索概念。

Classic Filter Drop-down Menus 下拉菜单

数据网格可以显示经典的筛选器菜单,而不是 Excel 样式的下拉菜单。经典筛选器菜单包括 DateTime 列的日历和其他类型列的常规下拉菜单。

在这里插入图片描述

Related API: 相关 API:

  • ColumnViewOptionsFilter.ColumnFilterPopupMode — 将此属性设置为 Classic 以在 v17.1 及更高版本中启用经典筛选器下拉菜单。经典菜单已在旧版本中启用。
  • WindowsFormsSettings.DefaultSettingsCompatibilityMode — 允许您启用经典筛选器下拉菜单的替代属性。要启用经典筛选器菜单,请将此属性设置为 v16。
  • ColumnViewOptionsFilter.ColumnFilterPopupRowCount — 获取或设置常规下拉菜单可以同时显示的最大项数。
  • ColumnViewOptionsFilter.AllowColumnMRUFilterList — 如果启用此属性,则常规下拉列表会记住用户最近选择的值。这些值显示在默认的 “Custom” 项之前。
  • OptionsColumnFilter.ShowBlanksFilterItems — 获取或设置“(Blanks)”和“(Non Blanks)”项在筛选器下拉菜单中是否可用。
  • ColumnView.ColumnFilterChanged - 当列的筛选条件发生更改时发生。当 Find Panel 完成搜索时,也会引发此事件。

您还可以使用检查列表菜单而不是常规下拉菜单。

在这里插入图片描述

Related API: 相关 API:

  • OptionsColumnFilter.FilterPopupMode — 将属性设置为 CheckedList 以启用此筛选器菜单样式。

  • ColumnViewOptionsFilter.ShowAllTableValuesInCheckedFilterPopup — 获取或设置选中的筛选器下拉列表是显示所有数据源记录中的唯一值,还是仅显示满足当前筛选条件的记录中的唯一值。

  • ColumnView.ShowFilterPopupCheckedListBox — 此事件允许您修改检查列表筛选器菜单中的项目,包括标准的“全选”项目。

您还可以将日历筛选器菜单替换为选中列表。此外,您还可以在三种类型的基于日历的菜单之间进行选择:DateSmart(默认菜单类型)、DateAlt 和 Date。下图说明了 DateAlt 菜单。

在这里插入图片描述

所有这些菜单都包含相同的日历,该日历选择特定日期,但具有不同的日期间隔集。下表列出了其中的几个间隔。

Related API: 相关 API:

  • OptionsColumnFilter.FilterPopupMode — 将此属性设置为 Date、DateSmart 或 DateAlt 以选择所需的基于日历的下拉菜单。

  • OptionsColumnFilter.ImmediateUpdatePopupDateFilterOnCheck — 如果启用此设置,则在用户切换基于日历的菜单复选框后立即应用筛选器。

  • OptionsColumnFilter.ImmediateUpdatePopupDateFilterOnDateChange — 如果启用此设置,则在用户在基于日历的菜单中选择日期(或日期范围)后,将立即应用筛选器。

  • OptionsColumnFilter.ShowEmptyDateFilter — 获取或设置下拉菜单是否显示“Show Empty”筛选器。用户可以检查此筛选器以查看在相应的 DateTime 列中没有值的记录。

Automatic Filter Row 自动筛选行

在运行时筛选数据的另一种方法是使用 Automatic Filter Row。此行显示在常规数据行的上方,允许用户键入筛选条件值(包括“*”和“%”通配符)并选择筛选条件运算符(NotLike、Equals、Between 等)。

在这里插入图片描述
请注意,显示在 Automatic Filter Row 中的单元格编辑器会忽略其掩码,并允许用户输入任何字符。

请注意,如果 Auto Filter Row 单元格使用 RepositoryItemRichTextEdit 就地编辑器,则用户只能为此单元格选择“Like”筛选条件。其他条件(“开头为”、“等于”等)不适用于 RTF 值。

Related API: 相关 API:

  • GridOptionsView.ShowAutoFilterRow — 管理 Automatic Filter Row 的可见性。
  • OptionsColumnFilter.AllowAutoFilter — 允许您从 Automatic Filter Row (自动筛选行) 中排除特定列,而不隐藏整行。
  • GridView.PopupMenuShowing — 允许您隐藏或删除特定条件。
  • GridOptionsFilter.AllowAutoFilterConditionChange — 指定自动筛选行的条件选择器是否可见。如果禁用此选择器,则将使用以下运算符比较输入的值:“等于”(用于 CheckEdit、LookUpEdit 和 ImageComboBoxEdit 列)或“喜欢”(用于其他列)。
  • OptionsColumnFilter.AutoFilterCondition — 指定此列的筛选条件运算符(“Equals”、“Like”、“Greater”等)。
  • OptionsColumnFilter.ImmediateUpdateAutoFilter — 如果启用此设置,则数据网格将在用户修改筛选条件后立即筛选其记录。否则,在用户按 Enter 键或将焦点移动到另一个单元格之前,不会应用筛选器。
  • GridView.ShowAutoFilterConditionsMenu — 从代码中调用此方法以调用特定列的 Automatic Filter Row 弹出菜单。
  • GridView.GetAutoFilterValue、GridView.SetAutoFilterValue — 允许您检索当前应用的自动筛选行条件并从代码中应用新条件的方法。

Filter Panel Filter 面板

应用过滤器时,View (视图) 将显示一个过滤器面板。用户可以使用此面板来修改和删除当前过滤器。

在这里插入图片描述

Related API: 相关 API:

  • ColumnViewOptionsView.ShowFilterPanelMode — 管理筛选器面板的可见性。
  • ColumnView.ActiveFilterEnabled — 允许您打开或关闭当前筛选器。
  • ColumnViewOptionsFilter.AllowMRUFilterList — 允许您隐藏使用最近应用的筛选器调用列表的按钮。
  • ColumnViewOptionsFilter.AllowFilterEditor — 控制“编辑筛选器”按钮的可见性。

Incremental Search 增量搜索

用户可以聚焦网格列并开始键入。Data Grid 聚焦并突出显示第一个匹配记录。要查找其他记录,请按 Ctrl+Up 和 Ctrl+Down 热键。
在这里插入图片描述

  • GridOptionsBehavior.AllowIncrementalSearch — 启用或禁用增量搜索。
  • ColumnView.GetIncrementalText — 返回在增量搜索期间搜索的文本。
  • GridView.StartIncrementalSearch、GridView.StopIncrementalSearch — 从代码中调用这些方法以手动触发和取消增量搜索。

Filter Editor 过滤器编辑器

Filter Editor 对话框允许用户构建复杂的筛选条件,这些条件由多个表达式组合而成。要调用此对话框,用户可以执行以下操作之一:

  • 单击 Filter 面板中的 “Edit Filter”。
  • 在常规的下拉过滤器菜单中选择“(自定义)”。
  • 右键单击列标题并选择 “Filter Editor”。

在这里插入图片描述
您可以修改 ColumnViewOptionsFilter.DefaultFilterEditorView 属性,以启用筛选器编辑器的“文本”面板/选项卡,用户可以在其中手动键入筛选器表达式。
在这里插入图片描述

Related API: 相关 API:

  • ColumnViewOptionsFilter.AllowFilterEditor — 获取或设置筛选器编辑器是否可用。
  • ColumnView.CustomFilterDialog — 处理此事件以更改用户单击“自定义”筛选器下拉菜单项时的默认行为。请参阅以下主题以了解更多信息:高级筛选和搜索概念。
  • ColumnView.FilterEditorCreated — 当 Filter Editor 即将显示时,将触发此事件。该事件允许您自定义 Editor 对话框或阻止其显示。
  • ColumnViewOptionsFilter.UseNewCustomFilterDialog — 启用此属性后,用户不仅可以根据常量自定义值筛选 GridColumn 的值,还可以根据其他 GridColumn 的值进行筛选。
  • ColumnViewOptionsFilter.FilterEditorAggregateEditing — 此属性指定用户是否可以基于集合属性创建筛选器。

以下代码片段允许用户使用 SpinEdit 和 CalcEdit 编辑器筛选 “Price” 列数据。

在这里插入图片描述

private void GridView1_FilterEditorCreated(object sender, DevExpress.XtraGrid.Views.Base.FilterControlEventArgs e) {e.FilterControl.BeforeShowValueEditor += FilterControl_BeforeShowValueEditor;
}
RepositoryItemSpinEdit reSpinEdit = new RepositoryItemSpinEdit();
RepositoryItemCalcEdit reCalcEdit = new RepositoryItemCalcEdit();
private void FilterControl_BeforeShowValueEditor(object sender, DevExpress.XtraEditors.Filtering.ShowValueEditorEventArgs e) {if (e.CurrentNode.FirstOperand.PropertyName != "Price") return;RepositoryItemTextEdit item = null;if (e.FocusedElementIndex == 2)item = reSpinEdit;elseitem = reCalcEdit;item.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;item.Mask.EditMask = "c";e.CustomRepositoryItem = item;
}

Find Panel “查找”面板

“查找面板”允许用户应用临时筛选器,以一次筛选所有数据网格列中的数据。要调用此面板,请在运行时按 “Ctrl+F”。键入您需要搜索的文本,然后按 Enter 或单击“查找”。
在这里插入图片描述
请注意,“查找”面板不会突出显示包含 HTML 文本的单元格。

  • ColumnViewOptionsFind.AllowFindPanel — 管理“查找”面板的可用性。
  • ColumnViewOptionsFind.Behavior — 获取或设置是否隐藏与查询不匹配的记录。
  • ColumnViewOptionsFind.ParserKind — 如果输入到“查找”面板中的文本包含空格,则面板会将此字符串拆分为单独的逻辑块。ParserKind 设置指定如何将这些块组合到搜索查询中。
  • ColumnViewOptionsFind.Condition — 获取或设置数据网格搜索输入到“查找面板”中的字符串所依据的条件。
  • ColumnViewOptionsFind.FindMode — 获取或设置用户是必须按 Enter 还是单击“查找”按钮才能开始搜索,还是在一定延迟后自动启动(ColumnViewOptionsFind.FindDelay 属性)。
  • ColumnViewOptionsFind.AllowFindInExpandedDetails — 获取或设置是否在展开的详细信息视图中搜索数据。

Search in Column Headers 在列标题中搜索

您可以使用 GridView.OptionsFilter.InHeaderSearchMode 属性在 View 的列标题中启用内置搜索框。搜索框用于筛选列数据或按列搜索,具体取决于您选择的模式。

  • ‘TextFilter’ Mode ‘TextFilter’ 模式
    用户可以在搜索框中键入文本以筛选列。
  • ‘TextSearch’ Mode “TextSearch” 模式
    用户可以在搜索框中键入文本来搜索列数据。网格将突出显示与指定搜索字符串匹配的单元格文本。

相关文章:

Filter and Search 筛选和搜索

Goto Data Grid 数据网格 Filter and Search 筛选和搜索 Filter Drop-down Menus (Excel-style) 筛选器下拉菜单(Excel 样式) 要调用列的筛选器下拉菜单,请单击列标题中的筛选器图标。在 “Values” 选项卡中,用户可以从 Data …...

spark的学习-06

SparkSQL读写数据的方式 1)输入Source 方式一:给定读取数据源的类型和地址 spark.read.format("json").load(path) spark.read.format("csv").load(path) spark.read.format("parquet").load(path) 方式二&#xff1a…...

Linux C/C++ Socket 编程

本文目录 Linux C语言 socket 编程 client 端头文件 unistd.h & arpa/inet.h1. **unistd.h**2. **arpa/inet.h** socket() 创建套接字sockaddr_in 结构体inet_pton()connect()send()recv()send() 和 recv() 中的 flags 参数**默认行为(flags 0)的特…...

Flutter错误: uses-sdk:minSdkVersion 16 cannot be smaller than version 21 declared

前言 今天要做蓝牙通信的功能,我使用了flutter_reactive_ble这个库,但是在运行的时候发现一下错误 Launching lib/main.dart on AQM AL10 in debug mode... /Users/macbook/Desktop/test/flutter/my_app/android/app/src/debug/AndroidManifest.xml Err…...

Spark 的容错机制:保障数据处理的稳定性与高效性

Spark 的介绍与搭建:从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交:本地与集群模式全解析-CSDN博客 Spark on YARN:Spark集群模式…...

TCP可靠连接的建立和释放,TCP报文段的格式,UDP简单介绍

TCP连接的建立(三次握手) 建立连接使用的三报文 SYN 报文仅用于 TCP 三次握手中的第一个和第二个报文(SYN 和 SYN-ACK),用于初始化连接的序列号。数据传输阶段不再使用 SYN 标志。 SYN 报文通常只携带连接请求信息&a…...

LLMs之PDF:zeroX(一款PDF到Markdown 的视觉模型转换工具)的简介、安装和使用方法、案例应用之详细攻略

LLMs之PDF:zeroX(一款PDF到Markdown 的视觉模型转换工具)的简介、安装和使用方法、案例应用之详细攻略 目录 zeroX的简介 1、支持的文件类型 zeroX的安装和使用方法 T1、Node.js 版本: 安装 使用方法 使用文件 URL: 使用本地路径&…...

开源数据库 - mysql - mysql-server-8.4(gtid主主同步+ keepalived热切换)部署方案

前置条件 假设主从信息 mysqlhostport主192.168.1.13306从192.168.1.23306vip192.168.1.3 部署流程 导出测试环境表结构与数据 使用mysqldump ./mysqldump -ulzzc -p -S /tmp/mysql3306.sock --single-transaction --database lzzc > databaseLZZCxxxx.sql查看gtid号 …...

Java全栈体系路线

Java全栈体系路线 摘要 Java 是一门广泛应用于企业级开发的语言,具有强大的生态系统和丰富的工具支持。成为一名 Java 全栈开发工程师不仅需要掌握后端开发技能,还需要具备前端开发和数据库管理的能力。本文将详细介绍 Java 全栈开发的学习路线&#x…...

【Unity基础】Unity中如何导入字体?

在Unity中,不能像其他软件一样直接使用字体文件,需要通过FontAssetCreator将其转换成Texture的Asset文件,然后才能使用。 本文介绍了使用FontAssetCreator导入字体的过程,并对其参数设置进行了说明。 Font Asset Creator 是 Uni…...

使用NVIDIA GPU加速FFmpeg视频压制:完全指南

引言 在视频处理领域,FFmpeg是一个强大的工具。结合NVIDIA的硬件编码器NVENC,我们可以实现快速高效的视频压制。本文将详细解析一个实用的视频压制命令,帮助你理解每个参数的作用。 核心命令 ffmpeg -i input.mp4 -vf scale640:360 -c:v h…...

Python学习:scipy是什么?

文章目录 一、Scipy简介二、Scipy的组成部分1. 基础功能:2. 特殊函数:3. 优化:4. 积分:5. 插值:6. 信号处理:7. 图像处理:8. 统计分布:9. 空间数据结构和算法:10. 稀疏矩…...

spark的学习-05

SparkSql 结构化数据与非结构化数据 结构化数据就类似于excel表中的数据(统计的都是结构化的数据)一般都使用sparkSql处理结构化的数据 结构化的文件:JSON、CSV【以逗号分隔】、TSV【以制表符分隔】、parquet、orc 结构化的表:…...

SQL注入(SQL Injection)详解

SQL注入(SQL Injection)是一种代码注入技术,它通过在应用程序的输入字段中插入或“注入”恶意的SQL语句,从而操控后端数据库服务器执行非预期的命令。这种攻击方式常用于绕过应用程序的安全措施,未经授权地访问、修改或…...

深入解析 OpenHarmony 构建系统-2-目录结构与核心组件

引言 OpenHarmony作为一款面向全场景的分布式操作系统,其构建系统在开发过程中扮演着至关重要的角色。本文将详细介绍OpenHarmony构建系统的目录结构和核心组件,帮助开发者更好地理解和使用这一强大的工具。 目录结构概览 以下是OpenHarmony构建系统的目录结构,每个目录和…...

网络安全应急响应(归纳)

目录 一、概述二、理论 系统排查 系统基本信息 windowsLinux用户信息 WindowsLinux启动项:开机系统在前台或者后台运行的程序,是病毒等实现持久化驻留的常用方法。 WindowsLinux任务计划:由于很多计算机都会自动加载“任务计划”&#xff0c…...

【网络协议栈】网络层(上)网络层的基本理解、IP协议格式、网络层分组(内附手画分析图 简单易懂)

绪论​ “It does not matter how slowly you go as long as you do not stop.”。本章是自上而下的进入网络协议栈的第三个篇幅–网络层–,本章我将带你了解网络层,以及网络层中非常重要的IP协议格式和网络层的分片组装问题,后面将持续更新网…...

数据库类型介绍

1. 关系型数据库(RDBMS) 关系型数据库是最常见的一类数据库,它们通过表(Table)来存储数据,表之间通过关系(如主键和外键)来关联。 • MySQL:开源的关系型数据库管理系统&…...

一步一步从asp.net core mvc中访问asp.net core WebApi

"从asp.net core mvc中访问asp.net core WebApi"看到这个标题是不是觉得很绕口啊,但的确就是要讲一讲这样的访问。前面我们介绍了微信小程序访问asp.net core webapi(感兴趣的童鞋可以看看前面的博文有关WEBAPI的搭建),这里我们重点不关心如何…...

linux中kubectl命令使用

一.命令介绍 kubectl 是 Kubernetes 集群管理的命令行工具,用于与 Kubernetes API 交互。你可以通过它来管理和操作 Kubernetes 集群中的资源,如 Pod、Deployment、Service 等。下面是如何在不同操作系统上下载和使用 kubectl 的方法。 二.下载 kubect…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理&#xff1a…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...