报表块中点击单元格改变颜色再次点击恢复颜色

编辑
  • 文档创建者:lanmengcaizi
  • 浏览次数:11003次
  • 编辑次数:11次
  • 最近更新:Carly 于 2019-10-15
  • 1. 描述

    1.1 问题描述

    在报表块中,点击单元格背景色发生变化,再次点击单元格背景色恢复。

    222

    1.2 解决思路

    类似的问题有以下的解决方案:

    1)JS 实现改变当前选中单元格的背景色,离开后恢复原色

    2)JS 实现分页预览改变鼠标悬停所在的行列的背景色

    但这些方案解决不了单元格颜色的恢复。对报表块添加初始化事件,使用 setTimeOut函数来定义单击事件,其中分别设置点击单元格后的背景色和恢复的背景色,根据点击时单元格的颜色决定设置背景色。

    2. 示例

    2.1 报表设计

    1)新建决策报表,新建数据集 ds1:select * from 销量

    2)在决策报表中拖入一个报表块,报表块设计如下:

    222

    2.2 添加初始化后事件

    给报表块添加初始化后事件,如下图所示:

    1571123574336133.png

    JS 代码如下:

    setTimeout(function() {
        //选择时背景颜色变量  
        var oldColor = "rgb(255, 255, 255)";
        var newColor = "rgb(255, 0, 0)";
        $('.x-table td').click(function() {
            if($(this).css('background-color') != newColor) {
                $(this).css('background', newColor);
            } else if($(this).css('background-color') == newColor) {
                $(this).css('background', oldColor);
            }
        });
    }, 1000);

    如果想要保留一行颜色,具体 JS 代码如下:

    setTimeout(function() {
        //选择时背景颜色变量  
        var oldColor = "rgb(255, 255, 255)";
        var newColor = "rgb(255, 0, 0)";
        $('.x-table td').click(function() {
            $(this).css('background', newColor).siblings().css("background",oldColor);
        });
    }, 1000);

    3. 预览效果

    保存模板,点击预览,效果如下图所示:

    222

    注:不支持移动端。

    4. 已完成模板

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\表单JS实例\05-报表块中点击单元格改变颜色再次点击恢复颜色.frm

    点击下载模板:05-报表块中点击单元格改变颜色再次点击恢复颜色.frm

    附件列表


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

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

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