找回密码
 立即注册

QQ登录

只需一步,快速开始

workaholic
论坛元老   /  发表于:2014-10-20 14:42  /   查看:10782  /  回复:18
想要做成下面这样,但是要把前三列去掉,只留下nodes中的信息。

修改代码如下
        void _flex_AfterDataRefresh(object sender, System.ComponentModel.ListChangedEventArgs e)
        {
            _flex.Tree.Style = TreeStyleFlags.Simple;
            _flex.Tree.Column =0;

            int totalOn = _flex.Cols["Sale Amount"].SafeIndex;

            _flex.Subtotal(AggregateEnum.None, 2, "CategoryName", "Sale Amount");
            _flex.Cols["LastName"].Width = 0;
            _flex.Cols["ShipCountry"].Width = 0;
            _flex.Cols["CategoryName"].Width = 0;
            _flex.AllowMerging = AllowMergingEnum.Nodes;
            _flex.AutoSizeCol(_flex.Tree.Column);
            _flex.Tree.Show(0);

        }
结果前三列完全没有了



需要怎样修改?

本帖子中包含更多资源

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

x

18 个回复

倒序浏览
workaholic
论坛元老   /  发表于:2014-10-20 14:53:00
沙发
刚刚看到了文档,原来这样暂时还是不可行的。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-10-20 14:57:00
板凳
回复 1楼workaholic的帖子

你在2楼说不支持。

你可以看看C1FlexGrid的在线中文文档:http://www.gcpowertools.com.cn/docs/ComponentOne/FlexGrid/
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
workaholic
论坛元老   /  发表于:2014-10-20 16:21:00
地板
请问  怎么使node显示三列的信息,只需要按一列分组。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-10-20 17:06:00
5#
回复 4楼workaholic的帖子

分组使用的是c1FlexGrid.Subtotal方法。具体的可以参考Demo,应该可以帮助你解决问题。
例子里这段代码:
  1.   _flex.Subtotal(AggregateEnum.Sum, 0, 1, totalOn);
  2.             _flex.Subtotal(AggregateEnum.Sum, 1, 2, totalOn);
  3.             _flex.Subtotal(AggregateEnum.Sum, 2, 3, totalOn);
复制代码

本帖子中包含更多资源

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

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
workaholic
论坛元老   /  发表于:2014-10-20 17:18:00
6#
不用Subtotal也不能隐藏:t(
                void _flex_AfterDataRefresh(object sender, System.ComponentModel.ListChangedEventArgs e)
                {
  GroupBy(1, 0);
                _flex.Cols["时间段"].Width = 0;
                _flex.Cols["栏目"].Width = 0;
               // _flex.Cols["节目类型"].Width = 0;

                _flex.AllowMerging = AllowMergingEnum.Nodes;
                _flex.Tree.Column = 0;
                _flex.AutoSizeCol(_flex.Tree.Column);
                _flex.Tree.Show(0);
}

   void GroupBy(int columnNum, int level)
        {
            object current = null;
            for (int r = _flex.Rows.Fixed; r < _flex.Rows.Count; r++)
            {
                if (!_flex.Rows[r].IsNode)
                {
                    var value = _flex[r, columnNum];
                    var value1 = _flex[r, columnNum + 1];
                    var value2 = _flex[r, columnNum + 2];
                    if (!object.Equals(value, current))
                    {
                        // 值的变化:插入节点
                        _flex.Rows.InsertNode(r, level);
                        // 在第一个滚动列显示分组的名称
                        int num=_flex.Cols.Fixed;
                        _flex[r, num] = value;
                        _flex[r, num + 1] = value1;
                        _flex[r, num + 2] = value2;
                        // 更新当前值
                        current = value;
                    }
                }
            }
        }

到底要怎样,求解答。
回复 使用道具 举报
workaholic
论坛元老   /  发表于:2014-10-20 17:38:00
7#
回复 5楼Alice的帖子

这个Demo我看过了,现在就是在改这个Demo,想要把重复的信息隐藏起来,只需要在nodes里面显示就好。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-10-20 17:50:00
8#
回复 6楼workaholic的帖子

代码收到了,我这边需要先测试下你的代码,然后给你回复。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-10-20 18:09:00
9#
回复 7楼workaholic的帖子

你的代码测试后,发现在我本机无法运行。
我又研究了下你的代码,觉得有可能最初对你的需求理解复杂了。
我按照我现在的理解简单实现了下你的需求,效果如下:



你看看这和你的需求是否相符?
代码参考:
  1. void _flex_AfterDataRefresh(object sender, System.ComponentModel.ListChangedEventArgs e)
  2.                 {
  3.             _flex.Tree.Style = TreeStyleFlags.Simple;
  4.             _flex.Tree.Column = 1;
  5.             _flex.AllowMerging = AllowMergingEnum.Nodes;
  6.             string caption = string.Empty;
  7.             int totalOn = _flex.Cols["Sale Amount"].SafeIndex;
  8.             //_flex.Subtotal(AggregateEnum.Sum, 0, 1, totalOn, caption);
  9.             //_flex.Subtotal(AggregateEnum.Sum, 1, 2, totalOn, caption);
  10.             _flex.Subtotal(AggregateEnum.Sum, 2, 3, totalOn, caption);
  11.             _flex.AutoSizeCols(1, 1, 1000, 3, 30, AutoSizeFlags.IgnoreHidden);

  12.                 }
复制代码

本帖子中包含更多资源

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

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
workaholic
论坛元老   /  发表于:2014-10-21 09:33:00
10#
不好意思,我的描述不清楚,我画了一张图

本帖子中包含更多资源

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

x
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部