为什么选择“关键字更改时刷新字段”会加载整个新文档?

时间:2019-03-13 20:12:26

标签: lotus-domino

说明9.01

为什么每次刷新文档时,网络上的新文档都会更改唯一ID ?!这会导致各种问题。显然这是另一份文件,所以也许我应该重新措辞,但我想您知道我在说什么。

我有一个列表框字段,并且选择了“在更改关键字时刷新字段”的设置。这允许隐藏时间重新计算,而其他字段重新计算。我也有显示当前@DocumentUniqueID的计算文本。

选择是:“选择一个”:“一个”:“两个”:“三个”

在网络上使用此表单时,在一个新文档中,我从下拉列表中选择了该字段中的内容,它刷新了表单,并且删除了我刚选择的选项,“选择一个”是再次显示。

一旦保存了文档,它将稳定下来,并且您不会切换文档,并且不会清除字段值。我只想了解这个问题的逻辑,并找出其他人如何解决这个问题。

任何反馈都会很棒。如果我做某件事很愚蠢,请告诉我,我可以接受。

  • 马特

2 个答案:

答案 0 :(得分:0)

我不知道您要处理的“各种问题”是什么,但是据我所记得,Note文档还没有一个稳定的@DocumentUniqueID值(或者根本没有,实际上)在第一次保存之前。这是我的实践,我认为这是相当广泛接受的实践,而不是编写可能存在问题的代码。如果在第一次保存之前有必要依赖文档中的某些唯一值,我总是将@Unique的“计算时组成”字段用作其值。

答案 1 :(得分:0)

我的建议是不要在网络上使用的表单使用“关键字更改时刷新字段”。我要处理的方法是使用一些JavaScript来处理。

在您的情况下,我个人会这样做:

  1. 将jQuery添加到表单中,您可以轻松地在页面中放置CDN链接 标头。
  2. 编写一个名为(例如)b recalculateFields()的JavaScript函数。该函数将计算字段值,并执行表格的字段/部分的隐藏/显示。
  3. 为所有要在更改值时触发字段重新计算的字段设置一个类。我将其称为recalcForm类。
  4. 将函数recalculateFields()绑定到所有changed类的所有字段的recalcForm事件中。

您可能还希望将函数绑定到其他一些事件,具体取决于表单上字段的类型。

$(".recalcForm").on("change", function(e) {
    recalculateFields();
});
$(".recalcForm").on("blur", function(e) {
    recalculateFields();
});

我过去曾在此发表过博客,希望您可以在其中使用一些信息:
http://blog.texasswede.com/using-jquery-to-emulate-notes-hide-when/
http://blog.texasswede.com/jquery-a-flexible-way-to-showhide-sections/