找回密码
 立即注册

QQ登录

只需一步,快速开始

KNight
中级会员   /  发表于:2015-9-1 10:06:00
5#
回复 4楼q406157290的帖子

速度很慢?!!:~  这个。。。我可没有大数据测试,换其他的试试吧,
  1. public override void CreateCellContent(C1FlexGrid grid, Border bdr, CellRange rng)
  2. {
  3.         base.CreateCellContent(grid, bdr, rng);
  4.         if (rng.Row == 0 && rng.Column == grid.Columns.Count - 1)
  5.         {
  6.                 bdr.BorderThickness = new Thickness(0, 0, 1, 1);
  7.                 bdr.BorderBrush = new SolidColorBrush(Color.FromArgb(255, 240, 240, 240));
  8.                 bdr.UpdateDefaultStyle();
  9.         }
  10. }
复制代码

在CreateCellContent之后把该单元格的边框样式还原回去试试。。。
回复 使用道具 举报
q406157290
高级会员   /  发表于:2015-8-31 17:13:00
地板
回复 2楼KNight的帖子

上面说的这个有试  数据量多的时候 页面就反应特别的慢了呢  特别的慢
回复 使用道具 举报
q406157290
高级会员   /  发表于:2015-8-31 15:32:00
板凳
回复 2楼KNight的帖子

谢谢您  我稍后试下  第二个问题呢
回复 使用道具 举报
KNight
中级会员   /  发表于:2015-8-31 14:48:00
沙发
回复 1楼q406157290的帖子

第一个问题的原因是,C1FlexGrid在绘制最后一列单元格时,要获取错误信息时,该列在绑定数据中找不到对应列,所以直接取该行对象的错误信息,即:
  1. string IDataErrorInfo.Error
  2. {
  3.     get
  4.     {
  5.         if (!string.IsNullOrEmpty(UpdateErrorMessage))
  6.         {
  7.             return UpdateErrorMessage;
  8.         }
  9.         return "";
  10.     }
  11. }
复制代码

也就是有该单元格的错误信息,所以会绘制红色边框;之所以前面几列此时没有红色边框,是因为前面几列在数据源绑定里有对应列,而且在属性处验证通过,即:
  1. string IDataErrorInfo.this[string columnName]
  2. {
  3.         get
  4.         {
  5.                 return "";
  6.         }
  7. }
复制代码

此时返回的错误信息是空串,所以此时前几列都没有绘制红色边框;

我现在得出的解决办法是在自定义的CellFactory中,在创建单元格内容之前grid.ShowErrors = false;,然后创建完最后一列单元格后再设置grid.ShowErrors = true;即可:
  1. public class MyCellFactory : CellFactory
  2. {
  3.         public override void CreateCellContent(C1FlexGrid grid, Border bdr, CellRange rng)
  4.         {
  5.                 if (rng.Row == 0 && rng.Column == grid.Columns.Count - 1)
  6.                 {
  7.                         grid.ShowErrors = false;
  8.                         base.CreateCellContent(grid, bdr, rng);
  9.                         grid.ShowErrors = true;
  10.                 }
  11.                 else
  12.                 {
  13.                         base.CreateCellContent(grid, bdr, rng);
  14.                 }
  15.         }
  16. }
复制代码


仅供参考
回复 使用道具 举报
1234
您需要登录后才可以回帖 登录 | 立即注册
返回顶部