找回密码
 立即注册

QQ登录

只需一步,快速开始

hiliuyong

初级会员

37

主题

61

帖子

270

积分

初级会员

积分
270
hiliuyong
初级会员   /  发表于:2021-8-30 23:42  /   查看:2013  /  回复:3
比如C1Flexgrid1的BingdingList有三个字段
YuWen
ShuXue
Heji
Heji=YuWen+ShuXue
如果做到我在修改语文或者修改数学的时候,总成绩自动改变?

3 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-31 09:41:32
沙发
本帖最后由 Richard.Ma 于 2021-8-31 11:42 编辑

FLEXGIRD不支持计算,但是从给你另一个帖子的答复思路继续扩展,在数据源BindingList的ListChanged事件中,也可以对改变的数据项进行判断,
https://gcdn.grapecity.com.cn/fo ... 9045&extra=page%3D1

比如,Count属性发生变化时,去改变Total的值
  1. private void List_ListChanged(object sender, ListChangedEventArgs e)
  2.         {
  3.             if(e.ListChangedType== ListChangedType.ItemChanged)
  4.             {
  5.                 list[e.NewIndex].Status = Status.Modified;
  6.                 if (e.PropertyDescriptor.Name == "Count")
  7.                 {
  8.                        list[e.NewIndex].Total= list[e.NewIndex].Count*5;
  9.                 }
  10.             }
  11.             else if (e.ListChangedType == ListChangedType.ItemAdded)
  12.             {
  13.                 list[e.NewIndex].Status = Status.Added;
  14.             }
  15.             else if (e.ListChangedType == ListChangedType.ItemDeleted)
  16.             {
  17.                 list[e.NewIndex].Status = Status.Removed;
  18.             }
  19.         }
复制代码






回复 使用道具 举报
hiliuyong
初级会员   /  发表于:2021-9-2 19:08:45
板凳
本帖最后由 hiliuyong 于 2021-9-2 19:10 编辑

我写点伪代码,小马帮我改下
flexJiesuan_AfterRowColChange
{
    if(当前列=“Shuxue”|| 当前列=“Yuwen”)
   {           列【Heji】=[Shuxue]+[Yuwen]
    }
}

只要表格上能实现就行,不考虑BindingList的事情.
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-2 23:56:49
地板
好的,我明天帮你整理一下代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部