上下左右按键

其实单元格导航(上下左右按键,需要启用表格的ShowSelectedCell属性)一直都存在,只不过之前的版本(v5.5.0)有一些小的BUG。

BUG1

比如锁定列存在时,上下左右键只能在锁定表格或者主表格导航,可以看示例:https://pro.fineui.com/#/grid/grid_lockcolumn_editor_cell_new.aspx

新版本(v5.6.0)会修正这个问题,使用左右键导航时,会从锁定表格自然跨到主表格,不会局限于某个表格内:

同时还有一个和之前版本不一致的地方,新版本(v5.6.0)中左右键导航时,如果在最右侧单元格按下右键,是没有反应的(老版本会调到下一行)。

同样,新版本(v5.6.0)中上下键导航时,如果在最下方单元格按下向下按键,也是没反应(不会调到下一列),这样就比较统一。

BUG2

另一个BUG存在于树表格,由于部分节点隐藏,所以上下左右按键时会选中隐藏的行,这样界面上就没有任何选中的效果了,测试示例:

https://pro.fineui.com/#/gridtree/gridtree_celleditor.aspx

新版本(v5.6.0)实现这个效果会更复杂,因为我们在新版本重构了树表格的DOM结构,从单层 TR 改为 TR-TD-TABLE 的嵌套结构,所以少不了各种递归,不过我们还是实现了这个效果:

其实最复杂的实现莫过于 锁定列和树表格 同时存在的情况,我们特意写了个示例测试这种情况:

https://pro.fineui.com/#/gridtree/gridtree_celleditor_lockcolumn.aspx

看起来很简单哈,其实内部的逻辑有点复杂,涉及左右两个表格,每个表格里面又有2-3层的表格嵌套。

我们对此进行了深入思考,并公开了 4 个客户端函数,方便网友自行扩展,它们是:getNextRowEl, getPrevRowEl, getNextCellEl, getPrevCellEl

TAB键和ENTER键

既然上下左右键用来在单元格之间导航,那么TAB键和ENTER键又用来做什么呢?很多网友可能会被搞晕掉,其实很简单:

1. 上下左右键用于在单元格之间导航,需要启用ShowSelectedCell或者启用单元格编辑(非编辑状态)

2. TAB键和ENTER键仅用于单元格编辑,用来在单元格编辑之间快速切换

看下这个示例的TAB键导航情况:

https://pro.fineui.com/#/gridtree/gridtree_celleditor_lockcolumn.aspx

很多网友不知道,如果你按下 Shift+Tab 键,就会反方向切换单元格,看下效果:

同时,我们还支持上下方向导航,只需要启用 TabVerticalNavigate="true" 属性即可,此时的TAB导航效果:

除了TAB键,还可以让 ENTER 键实现单元格编辑的快速导航,这些规则都记录在在线示例中,可以自行查询:

匠心品质,你值得拥有!

加入知识星球下载FineUIPro/Mvc/Core的基础版

不忘初心,砥砺前行!

【新特性速递】单元格导航(上下左右键,TAB键和ENTER键)的更多相关文章

  1. ActiveReports 11 新特性速递

    又到了一年一度,翘首期盼的ActiveReports11 即将发布,ActiveReports 10 表控件横空出世,成为中国式复杂报表的救星后,ActiveReports11 又会有哪些令人惊奇的新 ...

  2. FineUIMvc新特性速递(大间距模式,隐藏菜单垂直滚动条)

    即将发布的 FineUIMvc 新版本会引入两个重要的特性,用来提升用户体验,现在就来先睹为快吧: 大间距模式 我们已经支持的显示模式有:紧凑模式,普通模式,大字体模式. 紧凑模式: 普通模式: 大字 ...

  3. 【新特性速递】FineUIPro/Mvc/Core 全新移动端访问体验(示例首页)!

    移动端支持 虽然 FineUIPro 早在 2016 年就已经完成对移动端的适配工作,并新增了 50 多个官网示例. 并且,我们也新增了一个移动端的首页 http://pro.fineui.com/m ...

  4. 【新特性速递】树控件结构由单层 TR 改为 TR-TD-TABLE 层级嵌套

    FineUIPro/Mvc/Core的下个版本(v6.1.0),我们对树控件进行了优化,由原来的单层 TR 改为 TR-TD-TABLE 层级嵌套,从而做到表里如一. 上个版本(v6.0.0),我们对 ...

  5. 【新特性速递】CSS3动画增强

    FineUIPro/Mvc/Core的下个版本(v6.1.0),我们对多个地方的CSS3动画进行了增强,使得用户体验更好. 1. 树控件启用EnableSingleExpand时,使得展开动画和折叠其 ...

  6. 【新特性速递】优化Shift/Ctrl行多选逻辑,和Windows的文件资源管理器保持一致!

    别告诉我你不知道 别告诉我你不知道可以使用键盘的 Shift 和 Ctrl 来多选表格行,因为这个在 Windows 文件资源管理器中的常用操作,此时的画风是这样的: 这个动图中进行了如下操作: 1. ...

  7. 【新特性速递】树表格结构由单层 TR 改为 TR-TD-TABLE 层级嵌套!

    由于历史原因,在之前实现树表格时,我们有点偷懒,本来应该是层级嵌套的树结构,被我们硬生生的拉平了,请看: 可以看到,basic目录的子节点和basic是在同一级别的,因为此目录尚未展开,所以这些子节点 ...

  8. 【新特性速递】F.doPostBack的说明文档

    FineUIPro/Mvc/Core的下个版本(v6.1.0),我们对客户端JS函数 F.doPostBack 进行了增强,并增加说明文档. 如果你还没有查阅过FineUI的客户端文档,可以收藏下这个 ...

  9. golang1.16新特性速览

    今天是假期最后一天,明天起大家也要陆续复工了.golang1.16也在今天正式发布了. 原定计划是2月1号年前发布的,不过迟到也是golang的老传统了,正好也趁着最后的假期快速预览一下golang1 ...

随机推荐

  1. Python连载48-正则表达式(中)

    一.正则的写法: . (点好) :表示任意一个字符,除了\n,比如查找所有的一个字符\. [] :匹配中括号中列举的任意字符,比如[L,Y,0], LLY, Y0, LIU \d :任意一个数字 \D ...

  2. spring cloud 2.x版本 Gateway熔断、限流教程

    前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka ...

  3. 大话设计模式Python实现-解释器模式

    解释器模式(Interpreter Pattern):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 下面是一个解释器模式的demo: #!/usr/ ...

  4. 【前端知识体系-JS相关】你真的了解JavaScript编译解析的流程吗?

    1. JS编译解析的流程 1.1 JS运行分三步 语法分析(通篇扫描是否有语法错误),预编译(发生在函数执行的前一刻),解释执行(一行行执行). 1.2 预编译执行分五步 创建AO对象(Activat ...

  5. oracle学习笔记(十) 查询练习(一)

    查询练习一 表创建 create table employee as select * from soctt.emp ; --记得授权 sysdba用户登录 grant select on scott ...

  6. Python 最强 IDE 详细使用指南!-PyCharm

    PyCharm 是一种 Python IDE,可以帮助程序员节约时间,提高生产效率.那么具体如何使用呢?本文从 PyCharm 安装到插件.外部工具.专业版功能等进行了一一介绍,希望能够帮助到大家. ...

  7. Spring高频面试题,你能答的上哪些?(高级篇)

    1.什么是 Spring 框架?Spring 框架有哪些主要模块? 2.使用 Spring 框架能带来哪些好处? 3.什么是控制反转(IOC)?什么是依赖注入? 4.请解释下 Spring 框架中的 ...

  8. cesium-webpack 入门开发系列一初探篇(附源码下载)

    前言 cesium-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 we ...

  9. 【转载】更简单的学习Android事件分发

    事件分发是Android中非常重要的机制,是用户与界面交互的基础.这篇文章将通过示例打印出的Log,绘制出事件分发的流程图,让大家更容易的去理解Android的事件分发机制. 一.必要的基础知识 1. ...

  10. react-native 标题随页面滚动显示和隐藏

    效果图如下: 代码实现: import React, {Component} from 'react'; import { ScrollView, Text, View, FlatList, } fr ...