为什么要使用xPage完全更新(在另一个字段上)擦除字段值?

时间:2015-02-25 21:19:01

标签: xpages

我有一个行为非常奇怪的xPage。 (如果xPages腐败,我认为这可能是)告诉我你的想法:

我有onChange事件的可编辑字段,它接受字段的值(公司名称)并查看数据库以查看公司是否已存在。如果不是,则将名为“isNew”的字段设置为“y”。但是,下次从另一个字段或按钮执行完全更新时,我的“isNew”字段(或所有字段)将被删除!为什么全面更新会擦除完全不同的字段?

我是否需要重新创建此xPage?

=============================================== ============================= 好的,这是设置标志的可编辑字段上的onChange事件:

var c = currentDocument.getItemValueString("company");
var id = @DbLookup("","AD",tc,11); // this view column gets the doc ID
if (id==null || id==""){
 @SetField("isNew","y")
}

正确设置此字段 - 我使用计算字段来显示它。但是下一次完整更新(按钮,字段,等等)将删除“isNew”字段。

3 个答案:

答案 0 :(得分:0)

我认为您的问题是由您在网页上显示的数据源以及如何保存它们引起的。

也许您的数据源会从不应该的网址中绑定。

您是在重复或视图面板中使用数据源吗?如果是这样,请确保您只保存正确的数据源

答案 1 :(得分:0)

JSF(以及XPages)在保持MVC时最有效。因此,您从不操纵组件,但将该组件绑定到模型,如数据源或范围。这种方式代码不会相互影响。 刷新页面会计算整个树,而不仅仅是更新的字段,因此您需要仔细设计调用。

答案 2 :(得分:0)

直接使用您的数据源,因此请执行此操作而不是@SetField():

currentDocument.setValue("isNew", "y")