将计算的xpage字段绑定到表单字段

时间:2013-06-12 16:49:36

标签: xpages

关于将数据绑定到表单有很多问题。这很简单。我有一个表单,它使用几个计算字段,使用@DbLookup来拉取数据,根据用户选择的下拉菜单填充字段。问题是;没有任何计算字段将任何值保存到它所绑定的表单中。保存在表单上的唯一数据是手动选择的数据(在下拉菜单的情况下)或手动输入的数据。当我使用编辑框并且不做它时,只读#34;数据保存得很好。为什么这么难?

3 个答案:

答案 0 :(得分:2)

马克 - 我认为情侣会在这里接近......但是让我们走一些东西。

编辑框上的

只读是阻止保存。这说得通。 XPages不应该尝试保存标记为“只读”的内容。

史蒂夫说,你最好带一个计算字段。然而,设置值,如果它们绑定到文档,那么我认为它们会保存得很好。

另一种方法是使用范围变量。当您获得数据点时......您可以将其放入范围变量中,例如: viewScope.put(“myField”,myValue)

然后你的计算字段可以绑定到viewScope变量“myValue”。

然而,这当然不会保存回文档,因为它不受文档约束。因此,如果您希望该方法在文档保存事件中,您所做的就是...然后使用SSJS将值分配给文档。类似的东西:

document1.replaceItemValue(“myfield”,viewScope.get(“myField”);

由于xpages基本上与notes客户端具有相同的文档事件。这可能看起来很熟悉。

希望这有帮助。

戴夫 - NotesIn9.com

发言人:我在拉斯维加斯旅行后从飞机上回答这个问题。因此,请将其纳入我的答案的质量。 :)

答案 1 :(得分:1)

您需要将从@DbLookup收到的数据放在编辑框字段中。计算字段类似于传统Notes开发中的“计算显示”字段。您可以选择是否允许用户通过只读属性更改值。

如果您希望将值设为只读,请参阅此问题:ReadOnly field in Xpage not submitted

答案 2 :(得分:1)

像往常一样,戴夫引导我去做一些有用的事情。处于JavaScript体验的幼虫阶段,我确信有更好的方法可以做到这一点。我很高兴它有效。她是我在Xpage的QuerySave事件中添加的代码。

var cost1 = getComponent('ItemCost1').getValue();
var uom1 = getComponent('UOM1').getValue();
var Num1 = getComponent('ItemNum1').getValue();
var tot1 = getComponent('Total1').getValue();

docuent1.replaceItemValue("ItemCost_1", cost1), 
document1.replaceItemValue("ItemUOM_1", uom1),
document1.replaceItemValue("ItemNum_1", Num1),
document1.replaceItemValue("CostTotal_1", tot1)

我有30次这样的迭代所以它可能有点笨重但操作词是WORKS。如果有人有更好的方法来获得相同的结果,请发布它,以便我可以学到一些东西。感谢大家的帮助。