sxyweiren 发表于 2017-12-28 16:25:56

关于MR的CheckBox的一个需求

现在有这么一个需求,简化来说是下面这样子的。

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

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

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

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

sxyweiren 发表于 2018-1-12 13:19:43

请问,这个问题有人Flow了么?

有没有解决方案??

dexteryao 发表于 2018-1-19 15:39:48

        抱歉没有及时处理您的问题,这边已经通知相关技术人员立刻处理您的问题,赠送您2000金币以示歉意。

robert 发表于 2018-1-19 17:40:37

把使用CheckBoxCell的地方替换为使用MyCheckBoxCell就可以了。

    class MyCheckBoxCell : CheckBoxCell
    {
      public override object EditingCellFormattedValue
      {
            get
            {
                return base.EditingCellFormattedValue;
            }
            set
            {
                var otherColumnValue = this.GcMultiRow.GetValue(this.RowIndex, 1);
                if (object.Equals(otherColumnValue, 1))
                {
                  MessageBox.Show("不能修改,因为另一列的值是1");
                  return;
                }
                base.EditingCellFormattedValue = value;
            }
      }
    }

sxyweiren 发表于 2018-1-22 08:45:36

robert 发表于 2018-1-19 17:40
把使用CheckBoxCell的地方替换为使用MyCheckBoxCell就可以了。

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

按照这种思路,每一个处理都需要定义一个自己的MyCheckBoxCell么?

robert 发表于 2018-1-22 11:18:57

> 如果存在需要判断其他单元格的值的情况下,如何处理?
代码中 this.GcMultiRow.GetValue(this.RowIndex, 1); 的1 表示CellIndex,如果要判断其他单元格的值,把1 换成其他单元格的CellIndex就可以了。

> 按照这种思路,每一个处理都需要定义一个自己的MyCheckBoxCell么?
是的
页: [1]
查看完整版本: 关于MR的CheckBox的一个需求