cxGrid实现取消过滤和排序后定位到首行(单选和多选)

原创 2013年10月06日 18:42:24
  • 2107

DataContoller中的函数FocusedRecordIndex没有反应,FocusedRowIndex正常。

cxgrdtvGrid1DBTableView1.DataController.FocusedRecordIndex := 0; //定位到第一行,排序过滤无反应

cxgrdtvGrid1DBTableView1.DataController.FocusedRowIndex := 0; //定位到第一行,排序过滤仍正常

排序对应事件:cxGridDBTableView中的DataController的OnSortingChanged

过滤对应事件:cxGridDBTableView中的DataController的Filter的OnChanged

对于“排序”后定位到首行只需要设置dcofocusTopRowAfterSorting为True

1、测试cxGrid的cxGridDBBandTableView组件在排序或者过滤以后:(单选:MultSelect属性设置为False)

排序:devexpress1226版本的dcofocusTopRowAfterSorting设置为True即可焦点自动定位到首行,单选状态下有选中行焦点和颜色标示

过滤:默认设置,取消过滤后仍默认过滤时候选中的行,增加cxGridDBTableView中的DataController的Filter的OnChanged如下代码行,会出现取消过滤后选中首行(焦点和选中行颜色同时定位到第一行)

  1. var
  2. Filter: TcxDataFilterCriteria; //定义过滤器对象
  3. begin
  4. with Sender as TcxDataFilterCriteria do
  5. if IsEmpty then  //操作过滤器触发过滤器事件时判断过滤器是否为空,即:是否取消过滤
  6. begin
  7. cxgrdtvGrid1DBTableView1.DataController.FocusedRowIndex := 0; //焦点定位到第一行
  8. end;

2、针对多选情况变通调整,否则焦点(虚线框可以看见)可以移动,但是选中行颜色标志(背景颜色)不会;(多选:MultSelect属性设置为True)

排序:devexpress1226版本的dcofocusTopRowAfterSorting设置为True即可焦点自动定位到首行,多选状态下只有焦点标示无选中行颜色标示

过滤:默认设置,取消过滤后仍默认过滤时候选中的行,增加cxGridDBTableView中的DataController的Filter的OnChanged如下代码行,会出现取消过滤后无论过滤时候选择的一行还是多选都会在此时只选中首行(焦点和选中行颜色同时定位到第一行)

  1. var
  2. Filter: TcxDataFilterCriteria;
  3. begin
  4. with Sender as TcxDataFilterCriteria do
  5. if IsEmpty then  //操作过滤器触发过滤器事件时判断过滤器是否为空,即:是否取消过滤
  6. begin
  7. cxgrdtvGrid1DBTableView1.OptionsSelection.MultiSelect := False;
  8. cxgrdtvGrid1DBTableView1.DataController.FocusedRowIndex := 0; <span style="font-size:14px;font-family:Arial;">//焦点定位到第一行</span>
  9. cxgrdtvGrid1DBTableView1.OptionsSelection.MultiSelect := True;
  10. end;

3、cxGrid1DBTableView的OptionsView属性中的FocusRect为False就可以看不见虚线框,即获得焦点行的边框

4、在多选的情况下,按照以上所说的排序和过滤会出现,排序后焦点定位到第一行但是默认没有选中(背景色为白色),而取消过滤后焦点定位到第一行而且默认第一行选中(背景色为蓝色或者其他操作系统主题颜色),这样就不一致了,临时解决方案:

都只定位到第一行并且都不选择任何行,只需要对过滤后的事件代码做一个刷新调整即可:

  1. var
  2. Filter: TcxDataFilterCriteria;
  3. begin
  4. with Sender as TcxDataFilterCriteria do
  5. if IsEmpty then
  6. begin
  7. cxgrdtvGrid1DBTableView1.DataController.DataSet.Active := False;
  8. cxgrdtvGrid1DBTableView1.DataController.DataSet.Active := True;
  9. end;

cxGrid实现取消过滤和排序后定位到首行(单选和多选)的更多相关文章

  1. 关于怎样获取DevExpress GridView过滤后或排序后的数据集问题(转)

    GridView用自带的过滤功能过滤数据后,想要获取过滤后的数据集,有两种方式: 一.笨办法就是循环遍历GridView,根据gridView.GetRow()或者gridView.GetDataRo ...

  2. cxGrid控件过滤筛选后如何获更新筛选后的数据集

    cxGrid控件过滤筛选后如何获更新筛选后的数据集 (2015-06-19 12:12:08) 转载▼ 标签: delphi cxgrid筛选数据集 cxgrid过滤 分类: Delphi cxGri ...

  3. 《Entity Framework 6 Recipes》中文翻译系列 (27) ------ 第五章 加载实体和导航属性之关联实体过滤、排序、执行聚合操作

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-9  关联实体过滤和排序 问题 你有一实体的实例,你想加载应用了过滤和排序的相关 ...

  4. 在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

    背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5中创建GridView>中,我们学习了如何在 ASP.NET MVC 中实现 GridView,类似于 ASP.NET web ...

  5. MixItUp:超炫!基于 CSS3 & jQuery 的过滤和排序插件

    MixItUp 是一款轻量,但功能强大的 jQuery 插件,提供了对分类和有序内容的美丽的动画过滤和排序功能.特别适合用于作品集网站,画廊,图片博客以及任何的分类或有序内容. 它是如何工作的? Mi ...

  6. [转]在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

    本文转自:http://www.cnblogs.com/powertoolsteam/p/MVC5_GridView_2.html 背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5 ...

  7. Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值

    Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值 cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号 cxGrid1DB ...

  8. Visual Studio 2013 (vs2013)中“向前定位”,“向后定位”按钮

    Visual Studio 2013 (vs2013)中默认的界面中似乎没有向前向后定位这个非常实用的功能,下面是把它们找出来的方法: 方法1:右键-->工具栏空白处-->最下面,自定义- ...

  9. Oracle Day2 过滤、排序、单行函数

    1.过滤和排序 SQL> --查询10号部门的所有员工信息 SQL> select * from emp ; 未选定行 SQL> ed SP2: 无法创建保存文件 "afi ...

随机推荐

  1. 部署描述符(web.xml)和标注(annotation)

    部署描述符(web.xml) 详细信息可在http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html上下载web- ...

  2. How to return AJAX errors from Laravel Controller?

    Questions: I am building a REST API with Laravel 5. In Laravel 5, you can subclassApp\Http\Requests\ ...

  3. .net中反射技术的应用

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Ref ...

  4. iphone手机safari浏览器访问网站滚动条不显示问题解决办法

    近排有公司同事出差在外需使用OA系统,发现iphone手机safari浏览器在该出现滚动条的页面没有显示滚动条,导致无法正常使用. 系统前端页面是采用jeasyui搭建的框架,使用iframe变更主页 ...

  5. callable与runable区别?switch char ?sql只查是否存在,sql复制表 ?反射 ? spring mvc 和spring 上下文区别?

    中化技术部  2018.4.16 1. callable 和 thread 区别 实现Callable接口的线程能返回执行结果,而Runable 不可以 . Callable 的call方法允许抛出异 ...

  6. SVN基本操作 (zz)

    SVN基本操作 分类: LINUX 原文地址:SVN基本操作 作者:tuyer 文章摘要:SVN 基本操作:SVN是什么 Svn是一个离线的代码管理,可以多个人一起修改,然后再将修改的内容提交到Svn ...

  7. Struct配置

    这里只是写到配置方法: 第一步:LoginAction: package com.inspur.actions; import javax.servlet.http.HttpServletReques ...

  8. [Oracle]ORA-14400:插入的分区关键字未映射到任何分区

    今天在使用测试库的时候发生ORA-14400:inserted partition key does not map to any partition 解决过程: 经过百度,发现出现ORA-14400 ...

  9. Mac OS X下安装Python的MySQLdb模块【终结版】

    1.下载源文件: https://pypi.org/project/MySQL-python/ 2.cd 到源文件所在目录: 3.在目录下使用 python setup.py install 命令安装 ...

  10. navigator - 定时器 - event

    1. navigator userAgent: 包含浏览器名称,内核,版本号的字符串 鄙视: 如何判断浏览器名称和版本号 2. 定时器: 2种: 1. 周期性定时器: 什么是: 让程序每隔一段时间间隔 ...