找回密码
 立即注册

QQ登录

只需一步,快速开始

sxyweiren

中级会员

73

主题

366

帖子

755

积分

中级会员

积分
755

活字格认证微信认证勋章

sxyweiren
中级会员   /  发表于:2017-12-28 16:25  /   查看:5024  /  回复:5
现在有这么一个需求,简化来说是下面这样子的。

MR一共三列,第一列是RowHeader,显示行序号
第二列是数字列,显示0或者1,不能编辑
第三列是CheckBox,可以进行勾选

在第三列的值发生变更的时候,对第二列的值进行判断,如果是1,就MsgBox说不能进行变更。如果是0,则勾选上。
要求,MsgBox的时候,第三列的值应该保持不变的状态。

比如,本来第三列是勾选上的状态,我通过鼠标点击了一下,需要提示我不能进行变更。并且保持CheckBox的状态不变更。

麻烦给我整个简单的Demo,
注:这个机能客户不希望发生变动。也就是说该报MSG的时候,还是出MSG

5 个回复

倒序浏览
sxyweiren
中级会员   /  发表于:2018-1-12 13:19:43
沙发
请问,这个问题有人Flow了么?

有没有解决方案??

评分

参与人数 1金币 +2000 收起 理由
dexteryao + 2000 抱歉没有及时处理您的问题,这边已经通知相.

查看全部评分

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-1-19 15:39:48
板凳
        抱歉没有及时处理您的问题,这边已经通知相关技术人员立刻处理您的问题,赠送您2000金币以示歉意。
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2018-1-19 17:40:37
地板
把使用CheckBoxCell的地方替换为使用MyCheckBoxCell就可以了。

  1.     class MyCheckBoxCell : CheckBoxCell
  2.     {
  3.         public override object EditingCellFormattedValue
  4.         {
  5.             get
  6.             {
  7.                 return base.EditingCellFormattedValue;
  8.             }
  9.             set
  10.             {
  11.                 var otherColumnValue = this.GcMultiRow.GetValue(this.RowIndex, 1);
  12.                 if (object.Equals(otherColumnValue, 1))
  13.                 {
  14.                     MessageBox.Show("不能修改,因为另一列的值是1");
  15.                     return;
  16.                 }
  17.                 base.EditingCellFormattedValue = value;
  18.             }
  19.         }
  20.     }
复制代码
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2018-1-22 08:45:36
5#
robert 发表于 2018-1-19 17:40
把使用CheckBoxCell的地方替换为使用MyCheckBoxCell就可以了。

如果存在需要判断其他单元格的值的情况下,如何处理?

按照这种思路,每一个处理都需要定义一个自己的MyCheckBoxCell么?
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2018-1-22 11:18:57
6#
> 如果存在需要判断其他单元格的值的情况下,如何处理?
代码中 this.GcMultiRow.GetValue(this.RowIndex, 1); 的1 表示CellIndex,如果要判断其他单元格的值,把1 换成其他单元格的CellIndex就可以了。

> 按照这种思路,每一个处理都需要定义一个自己的MyCheckBoxCell么?
是的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部