gpt4 book ai didi

javascript - 在增强型数据网格中设置列值

转载 作者:行者123 更新时间:2023-11-30 00:00:54 24 4
gpt4 key购买 nike

如果我有一个使用 Rest 服务的带有 datagrid 的 xpage。在 datagrid 中有两条记录作为单独的记录存储在 Notes 中。用户编辑 xpage 并为一行编辑数据网格中的列之一。

有A列,B列和C列。C列是之前使用脚本库“ABC”计算的,其中A列和B列的两个值创建了背景Notes文档,然后显示在datagrid上.

例如,column A = 12column B = 24,C 列的计算结果为 397。A 列必须更改并使用脚本重新计算图书馆 ABC。在 Save Changes 按钮中,给我示例代码,说明如何选择已更改的行,使用 A 列和 B 列设置两个变量,调用脚本库“ABC”并更新后台 Notes 文档和重新显示数据网格或更新数据网格并让它更新后台 Notes 文档。 A 列是唯一可编辑的列。

这是代码

var rsStore = restServiceObj;
var items = gridObj.selection.getSelected();

dojo.forEach(items, function(selectedItem) {
if(selectedItem != null) {
viewScope.ColA = rsEntry.getColumnValue("A");
viewScope.ColB = rsEntry.getColumnValue("B");
var ans = ABC();
}
});

最佳答案

使用dataTable 列出所有文档。

在属性 value 中计算您要列出的所有 NotesDocuments。

将 A 列作为可编辑字段,将 B 列和 C 列作为只读字段添加到数据表中。

向 A 列的可编辑字段添加一个 onchange 事件:

  • 根据 A 和 B 使用函数 ABC(A, B) 计算 C
  • 保存文件
  • 刷新表格

这样,只要用户更改值 A,C 就会自动计算。

<xp:panel id="panelTable">
<xp:dataTable id="dataTable1"
rows="100"
var="doc">
<xp:this.value><![CDATA[#{javascript:
var documents = [];
var col = view1.getAllEntriesByKey("yourKey", true);
var entry = col.getFirstEntry();
while (entry != null) {
documents.push(entry.getDocument());
entry = col.getNextEntry(entry);
}
return documents;
}]]></xp:this.value>
<xp:column id="column1">
<xp:this.facets>
<xp:span xp:key="header">A</xp:span>
</xp:this.facets>
<xp:inputText id="inputText1" value="#{doc.A}">
<xp:eventHandler
event="onchange"
submit="true"
refreshMode="partial"
refreshId="panelTable">
<xp:this.action><![CDATA[#{javascript:
var A = doc.getItemValue("A").get(0);
var B = doc.getItemValue("B").get(0);
doc.replaceItemValue("C", ABC(A, B));
doc.save();
view1.refresh();
}]]></xp:this.action>
</xp:eventHandler>
</xp:inputText>
</xp:column>
<xp:column id="column2">
<xp:this.facets>
<xp:span xp:key="header">B</xp:span>
</xp:this.facets>
<xp:text id="computedField3" value="#{doc.B}" />
</xp:column>
<xp:column id="column3">
<xp:this.facets>
<xp:span xp:key="header">C</xp:span>
</xp:this.facets>
<xp:text id="computedField2" value="#{doc.C}" />
</xp:column>
</xp:dataTable>
</xp:panel>

关于javascript - 在增强型数据网格中设置列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40569694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com