关于将数据绑定到表单有很多问题。这很简单。我有一个表单,它使用几个计算字段,使用@DbLookup来拉取数据,根据用户选择的下拉菜单填充字段。问题是;没有任何计算字段将任何值保存到它所绑定的表单中。保存在表单上的唯一数据是手动选择的数据(在下拉菜单的情况下)或手动输入的数据。当我使用编辑框并且不做它时,只读#34;数据保存得很好。为什么这么难?
答案 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)
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。如果有人有更好的方法来获得相同的结果,请发布它,以便我可以学到一些东西。感谢大家的帮助。