XPages:版本9.0.1FP3 HF241中的enableModifiedFlag可能存在的错误,以及解决方法

时间:2015-10-23 13:35:18

标签: xpages xpages-ssjs

我有一个页面,我想使用“enableModifiedFlag”属性,让用户知道如果他们想要在保存之前离开页面,则不会保存他们的编辑。

我在该页面中也有一个搜索框,当我将字段设置为静态值“true”时,消息弹出,因为搜索框被视为页面的一部分,并且字段已被修改。这一切都有道理。

由于可以计算“enableModifiedFlag”属性,因此只有在文档处于编辑模式时才会将其设置为true,因为此时搜索框不可用。我得到的行为是消息不再出现了。然后我测试返回true作为属性的值,它没有改变任何东西:消息刚刚消失。然后我使用静态值并将其设置为true,然后显示消息。

我的结论是存在一个错误,阻止对该属性考虑任何计算值。

所以我必须找到一种解决方法,以防止用户使用serach框时弹出消息。这是我提出的解决方案。

在客户端,我们可以访问XSP对象。它的一个方法是XSP._setDirty()。您可以将其设置为true或false,如果页面显示弹出消息,则会影响它。所以在我的搜索按钮中,我在onclick事件上添加了这个代码,在客户端:

XSP._setDirty(false,""); //so we don't get the "do you want to leave this page" message
showStandBy();  //show standby in case search is long or slow
return true;

这样,我告诉我的页面不显示消息,并且不显示弹出窗口。

您仍然无法使用该属性的计算值,但至少我们有一个解决方法。希望这对某些人有用!!!

GOT SOMETHING WORKING I THINK

这就是我现在所控制的标志:

<xp:this.enableModifiedFlag><![CDATA[${javascript:context.getUrlParameter("action")=="editDocument";}]]></xp:this.enableModifiedFlag>

我宁愿使用document1.isEditable()函数,但到目前为止我还没有成功,无论是动态计算还是页面加载。

在租约我有一些似乎有效的东西。是时候将代码提交给最终用户了!

0 个答案:

没有答案