JS实现单击控件可直接编辑

编辑
  • 文档创建者:yets11
  • 浏览次数:5275次
  • 编辑次数:8次
  • 最近更新:Kevin-s 于 2019-06-22
  • 1. 描述

    场景描述:在填报应用中,可以直接设置显示控件,但是在模板中如果控件较多的情况下,会导致页面加载速度非常慢,有时内容多时显示控件也会导致页面不美观,不得已需要放弃直接显示控件。这样默认的情况下需要双击单元格才能进入控件进行编辑,显得比较繁琐,而且如果只是单击或使用Tab键选择单元格时,直接编辑输入汉字时第一个拼音字母会被单元格吃掉,导致输入出错出错,如下图:

    222

    那么如何实现选择一次单元格后自动进入编辑状态呢,如下图

    222

    2. 实现思路

    2.1 方法一

    利用 contentPane.on 事件来监测单元格选择事件,在选择单元格事件中对选择的单元格设置编辑事件。

    2.2 方法二

    利用 contentPane 提供的 setEditOnClick()与 setEditOnMove()来设置点击或键盘按下 Tab 键来移动光标选择单元格时是否直接编辑。

    3. 操作步骤

    3.1 方法一 实现过程

    为模板添加加载结束事件,如下图:

    222

    代码如下:

    //监测单元格选择事件
    contentPane.on('cellselect',function(td){
    //对选择的单元格调用编辑事件
    contentPane.curLGP.editTDCell(td);
    })

    注:此方法适用于直接鼠标选择或 Tab 键来选择单元格后直接显示并编辑控件

    3.2 方法二 实现过程

    为模板添加加载结束事件,如下图:

    222

    代码如下:

    //设置点击单元格时直接编辑
    contentPane.setEditOnClick(true);
    //设置使用Tab键移动光标选择单元格时直接编辑
    contentPane.setEditOnMove(true);

    3.3 总结

    以上两种方法均可以实现选择单元格后直接显示控件并编辑,提高我们报表的易用性和更好的交互体验。

    方法一可以结合其他代码一起使用,比如 自定义添加删除行按钮 或 JS 去除填报左上角红色三角 等效果都会用到此方法。

    方法二更简单直观,但是使用时必须把两行代码全加上,一个是控制鼠标选择单元格,一个是控制Tab键来选择单元格。

    4. 预览效果

    4.1 PC 端预览效果

    保存模板,选择填报预览,实现效果如上图。

    注:经过测试,手机端和 H5 不支持该效果。

    5. 已完成模板

    1)方法一

    模板效果在线查看请点击:JS 实现单击控件可直接编辑方法一.cpt

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\18-JS实现单击控件可直接编辑方法一.cpt

    点击下载模板 

    2)方法二

    模板效果在线查看请点击:JS 实现单击控件可直接编辑方法二.cpt

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\18-JS实现单击控件可直接编辑方法二.cpt

    点击下载模板


    附件列表


    主题: 二次开发
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]