FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 12042|回复: 13
打印 上一主题 下一主题

【分享】如何按条件设置单元格颜色

[复制链接]
跳转到指定楼层
楼主
发表于 2015-9-20 03:12:36 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 Gnid 于 2015-10-29 13:57 编辑

最近,貌似有好几个网友问到这类问题,解释下原理,通过CSS定义单元格的高亮颜色,然后通过HiddenField记录要高亮的单元格的位置,然后通过js操作即可。

我做了个小的demo,大家可以下载下来参考一下,如下图。





FINEUI 3.X中,请参考以下文件:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
13#
 楼主| 发表于 2016-4-27 18:31:06 | 只看该作者
用浏览器应该能看出哪里出错的。
粗略看了下,第二行
  1. var highlightCellsClientID = '<%= hfHighlightCells %>';
复制代码

是否应该更正为
  1. var highlightCellsClientID = '<%= hfHighlightCells.ClientID %>';
复制代码
12#
发表于 2016-4-27 11:54:31 | 只看该作者
本帖最后由 phoenixfang1 于 2016-4-27 11:55 编辑

顶楼主,麻烦帮看下我修改的正确吗,我用了以后页面一直显示转圈,显示不出来。我用的是4.2.3的,这个有关系吗

    <script type="text/javascript">
        var highlightCellsClientID = '<%= hfHighlightCells %>';

        var gridClientID = '<%= Grid1.ClientID %>';

        function highlightCells() {
            var highlightCells = F(highlightCellsClientID);
            var grid = F(gridClientID);

            var store = grid.getStore();

            $(grid.el.dom).find('.x-grid-cell.highlight').removeClass('highlight');

            $.each(highlightCells.getValue().split(','), function (index, item) {
                if (item !== '') {
                    var rowscells = item.split('-');
                    //var cell = grid.getView().getNode(parseInt(item[0], 10)).getNode(parseInt(item[1],10));
                    var cell = grid.getView().getNode(parseInt(rowscells[0], 10)).cells[parseInt(rowscells[1], 10)];
                    $(cell).addClass('highlight');

                }
            });
        }

        // 页面第一个加载完毕后执行的函数
        F.ready(function () {
            highlightCells();
        });

        // 页面AJAX回发后执行的函数
        F.ajaxReady(function () {
            highlightCells();
        });
    </script>
11#
发表于 2015-11-1 20:57:44 | 只看该作者
这个方法好,测试fineUI3.X下是完全可用的!
衷心感谢楼主热心解答!
10#
发表于 2015-10-28 11:11:00 | 只看该作者
FINEUI 3.X中,请作如下更改:
$(grid.el.dom).find('.x-grid-cell.' + className).removeClass(className);

改为

$(grid.el.dom).find('.x-grid3-cell.' + className).removeClass(className);

---------------谢谢楼主!
9#
发表于 2015-10-26 18:09:24 | 只看该作者
用在fineUI3.3 中,不知这样改是否对?
盼指教,衷心感谢!
8#
发表于 2015-10-26 18:08:38 | 只看该作者
<script src="jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        var highlightCellsClientID_MC = '<%= hfHighlightCells_MC.ClientID %>';
        var highlightCellsClientID_SJ = '<%= hfHighlightCells_SJ.ClientID %>';
        var gridClientID = '<%= Grid1.ClientID %>';

        function highlightCells(highlightCellsClientID, gridClientID, className) {
            var highlightCells = X(highlightCellsClientID);
            var grid = X(gridClientID);

            var store = grid.getStore();

            $(grid.el.dom).find('.x-grid-cell.' + className).removeClass(className);

            $.each(highlightCells.getValue().split(','), function (index, item) {
                if (item !== '') {
                    var rowscells = item.split('-');
                    //var cell = grid.getView().getNode(parseInt(item[0], 10)).getNode(parseInt(item[1],10));
                      var cell = grid.getView().getNode(parseInt(rowscells[0], 10)).cells[parseInt(rowscells[1], 10)];
                    $(cell).addClass(className);
                }
            });
        }

        // 页面第一个加载完毕后执行的函数
        X.ready(function () {
             highlightCells(highlightCellsClientID_MC, gridClientID, "highlight_mc");
             highlightCells(highlightCellsClientID_SJ, gridClientID, "highlight_sj");
        });

        // 页面AJAX回发后执行的函数
        X.ajaxReady(function () {
            //highlightCells(highlightCellsClientID_MC, gridClientID, "3-1,3-3,3-2");
            ////highlightCells(highlightCellsClientID_SJ, gridClientID, "highlight_sj");
            highlightCells(highlightCellsClientID_MC, gridClientID, "highlight_mc");
            highlightCells(highlightCellsClientID_SJ, gridClientID, "highlight_sj");
        });
    </script>
7#
发表于 2015-10-26 18:03:36 | 只看该作者
请教:
请问这个想fineUI3.3 中如何才会生效,我试过fineUI3.3 是不行.
6#
发表于 2015-9-21 09:20:09 | 只看该作者
及时雨啊,感谢
5#
发表于 2015-9-21 09:04:25 | 只看该作者
谢谢分享,这个很有用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-5-10 08:55 , Processed in 0.050196 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表