找回密码
 立即注册

QQ登录

只需一步,快速开始

FBAccount
中级会员   /  发表于:2015-1-27 08:23:00
11#
回复 9楼FBAccount的帖子

收到。
正在进行需求的调试,预计最晚明天给你一个反馈。
Alice 发表于 2015-1-26 17:36:00


不要紧的,只希望有解,谢谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-27 10:40:00
12#
回复 11楼FBAccount的帖子

好的,了解到。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
FBAccount
中级会员   /  发表于:2015-1-27 13:58:00
13#
若采用新DataTable重设DataSource,再用代码进行一些逻辑上的操作,则可以达成上述需求,但c1Flexgrid外观之前的设定都得重来,且在排序的状态下若新增一笔数据,三角箭头还是会消失,并且不会按照该Column的规则排序到所在位置~

然而c1Flexgrid内建的排序则是可以的
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-27 15:57:00
14#
回复 13楼FBAccount的帖子

你好。
经过校验你的程序,程序逻辑不太容易改。
所以我又重新做了一个Demo。C1FlexGrid绑定了一个DataTable,且SupplierID和CategoryID两列都有DataMap。通过BeforeSort和AfterEdit事件用来做自定义sort支持。

具体请看Demo。如果有什么不同的地方,请提出来我们交流。

本帖子中包含更多资源

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

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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
FBAccount
中级会员   /  发表于:2015-1-27 17:27:00
15#
回复 13楼FBAccount的帖子

你好。
经过校验你的程序,程序逻辑不太容易改。
所以我又重新做了一个Demo。C1FlexGrid绑定了一个DataTable,且SupplierID和Cate
Alice 发表于 2015-1-27 15:57:00


抱歉,因为当时实验到整体都有点乱了~~
刚试了一下版主您的DEMO~
操作请看下图,只要对其中一个Cell做更动,三角形箭头就消失了(红框处)





这逻辑具体可行后,是要做在如下画面~
点选 商品名称时,采用隐藏Column去排序(或其他方案),同时间可能有新成交的委托单会进来、或是某笔委托单上数量异动了、价格异动了等等~

因此一更动后~~~ 三角箭头就消失了…..这….就笑话了

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-28 10:19:00
16#
回复 15楼FBAccount的帖子

具体的实现是要和需求相关的,我对你的业务逻辑并不熟悉,所以无法第一时间就满足你所有的业务逻辑,还望理解。
有关在排序并且编辑后要画Sort符号,可以在我之前发给你的Demo上做修改,通过OwerDrasCell来实现。
就是使用OwerDrawCell的Image来自己画该Sort符号。
所以需要添加如下代码:
1.在Form初始化的时候,设置ShowSortPosition为None,并设置DrawMode为OwnerDraw。这样子就放弃原本Sort符号,改由OwnerDraw来画。
代码参考
  1. _flex.ShowSortPosition = C1.Win.C1FlexGrid.ShowSortPositionEnum.None;
  2.             _flex.DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw;
  3.             _flex.OwnerDrawCell += new C1.Win.C1FlexGrid.OwnerDrawCellEventHandler(_flex_OwnerDrawCell);
复制代码

2.在OwnerDrawCell事件里,通过Image给ColumnHeader画上Sort符号。初始化的时候都没有sort。
代码参考:
  1.         void _flex_OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e)
  2.         {
  3.             if (e.Row == 0)
  4.             {
  5.                 e.Style.ImageAlign = C1.Win.C1FlexGrid.ImageAlignEnum.RightCenter;
  6.                 if (_sourceColumn!=null && e.Col == _sourceColumn.Index)
  7.                 {
  8.                     if (this._flex.Cols[e.Col].Sort == C1.Win.C1FlexGrid.SortFlags.Ascending)
  9.                     {
  10.                         e.Image = this._flex.Glyphs[C1.Win.C1FlexGrid.GlyphEnum.Ascending];
  11.                     }
  12.                     else if (this._flex.Cols[e.Col].Sort == C1.Win.C1FlexGrid.SortFlags.Descending)
  13.                     {
  14.                         e.Image = this._flex.Glyphs[C1.Win.C1FlexGrid.GlyphEnum.Descending];
  15.                     }
  16.                 }
  17.                 else
  18.                 {
  19.                     e.Image = null;
  20.                 }
  21.             }
  22.         }
复制代码


这样子,即使进行编辑,sort符号也能保持不变。

评分

参与人数 1满意度 +5 收起 理由
FBAccount + 5 非常感谢~~ 自绘箭头对我来说太有用了~

查看全部评分

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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
FBAccount
中级会员   /  发表于:2015-1-28 17:10:00
17#
回复 15楼FBAccount的帖子

具体的实现是要和需求相关的,我对你的业务逻辑并不熟悉,所以无法第一时间就满足你所有的业务逻辑,还望理解。
有关在
Alice 发表于 2015-1-28 10:19:00


太赞了~~~ 我就是需要这种自绘箭头的方式~~ 可以自行控制
我是有自行做渐层header,但就不知道哪种接口可以把三角形箭头放进去~
又不像VC++可以硬来~~
感谢版主~~~ 这下子都可以自己来了,谢谢妳
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-28 17:48:00
18#
回复 17楼FBAccount的帖子

谢谢你的反馈,能够帮到你很开心。
下面如果有什么后续问题,请提出来我们再交流。
如果有新问题欢迎开新帖。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部