• 读书笔记 UltraGrid(16)


    单元格合并
    当使用grid列示数据时,如果某一行某列数据和上一行的对应列数据相同时,我们想把该列的显示隐含。
    所有band中的所有列。
    this.ultraGrid1.DisplayLayout.Override.MergedCellStyle = MergedCellStyle.Always
    其值还可以是:
    OnlyWhenSorted:只在排序时候合并
    Never:从不合并

    也可以针对具体的列来设置,如:
    this.ultraGrid1.DisplayLayout.Bands[1].Columns["SpecWth"].MergedCellStyle = MergedCellStyle.Never;
    合并可以按文本相同或者值相同,如:
    this.ultraGrid1.DisplayLayout.Bands[1].Columns["SpecWth"].MergedCellEvaluationType = MergedCellEvaluationType.MergeSameText;

    但有时这种合并还是不能满足我们的要求,那我们可以自定义条件合并即可。
    实现如下:
    public class CustomMergedCellEvaluator : IMergedCellEvaluator
    {
            UltraGridColumn[] ugcs;
            public CustomMergedCellEvaluator(UltraGridColumn[] keys)
            {
                this.ugcs = keys;
            }

            public bool ShouldCellsBeMerged(UltraGridRow row1, UltraGridRow row2, UltraGridColumn column)
            {
                bool keyIsSame = KeyIsSame(row1, row2, this.ugcs);
                if (keyIsSame == true)
                    return row1.Cells[column].Value.ToString () == row2.Cells[column].Value.ToString();
                else
                    return false;
            }

            private bool KeyIsSame(UltraGridRow row1, UltraGridRow row2, UltraGridColumn[] keys)
            {
               //定义合并的逻辑
                return keyIsSame;
            }
    }

    这时我们在column中设置如下,即可按我们的条件合并了。
    ustomMergedCellEvaluator cmce = new CustomMergedCellEvaluator(new UltraGridColumn[]{ultraGrid1.DisplayLayout.Bands[1].Columns[0],ultraGrid1.DisplayLayout.Bands[1].Columns[1]});
    column.MergedCellEvaluator = cmce;
    column.MergedCellStyle = MergedCellStyle.Always;
    column.MergedCellEvaluationType = MergedCellEvaluationType.MergeSameText;
    其实现也就如此的简单。


     

  • 相关阅读:
    虚拟机更新为阿里数据源
    linux设置开机同步时间
    linux免密码登录
    Google 开源的 Python 命令行库:深入 fire(一)
    统计各个分类和标签下的文章数
    缩写名词解释
    Google 开源的 Python 命令行库:初探 fire
    稳定易用的 Django 分页库,完善分页功能
    Python 命令行之旅:使用 click 实现 git 命令
    Python 库打包分发、setup.py 编写、混合 C 扩展打包的简易指南(转载)
  • 原文地址:https://www.cnblogs.com/chump/p/2368141.html
Copyright © 2020-2023  润新知