【问题标题】:Recalculate the value of a variable as soon as one of the elements required to calculate it changes一旦计算变量所需的元素之一发生变化,立即重新计算变量的值
【发布时间】:2015-05-18 22:43:14
【问题描述】:

我有以下问题:

我有一个网络面板“预订”,用户在其中指定 &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


【解决方案1】:

从 Genexus X EV1 upg 3 起,您可以在浏览器中运行事件(无需刷新网格)SAC 30737

尝试添加 IsValid 事件:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 2016-02-10
    相关资源
    最近更新 更多