一旦计算变量所需的元素之一发生变化,就重新计算变量的值

Recalculate the value of a variable as soon as one of the elements required to calculate it changes

我有以下问题:

我有一个网络面板 'Reservations',用户可以在其中指定 &beginDate&endDate 的值(编辑)。变量 &beginDate&endDate 用作网格的条件。

我还有一个&days变量(只读),它在规则中被定义为这两个(&days=&endDate-beginDate)之间的区别,它的目的有两个:

  1. 计算预订率 - 这很好用

  2. 为用户显示。 - 这不能正常工作

我的问题是,如果用户更新 &endDate&beginDate 的值,则 &days 值只有在加载或刷新网格后才会更新。我需要它尽快更改。

我在寻求帮助之前尝试了以下方法:

  1. &beginDate&endDate 设置 notifycontextchange=true 并创建两个 TrackContext 事件:

`

Event TrackContext(&beginDate)
&days=&endDate-&beginDate
endevent

Event TrackContext(&endDate)
&days=&endDate-&beginDate
endevent
  1. 在开始事件中赋值

  2. &beginDate.click&endDate.click 事件上分配其值

我已经浏览了这些论坛并找到了建议使用 ControlValueChanged 事件的答案。问题是我是 运行 Genexus X Ev1 并且该事件不存在于此(或者至少不固有地与变量相关)。

还有其他解决办法吗?我觉得我错过了一些真正简单的东西:(

我正在使用 HTML 4.01 Transitional 和 .NET 环境。

从 Genexus X EV1 upg 3 开始,您可以在浏览器中拥有 运行 的事件(不需要刷新网格)SAC 30737

尝试添加 IsValid 事件:

Event &beginDate.IsValid
    &days = &endDate - beginDate
EndEvent
Event &endDate.IsValid
    &days = &endDate - beginDate
EndEvent