使用XPages从dataTable中的选定文档创建响应文档
Creating response doc from a selected document within a dataTable with XPages
我试着保存我的文档,文档保存没有任何错误,但响应文档不在哪里可以找到。响应文档是使用复选框选择的数据表中的文档列表。下面的代码放置在复选框的onchange事件上:
<xp:checkBox id="checkBox1" value="#{vProductListCollection}">
<xp:eventHandler event="onchange" submit="true" refreshMode="norefresh"
id="eventHandler1">
<xp:this.action><![CDATA[#{javascript:
var colTitle = vProductListCollection.getColumnValue("Title");
var prodTitle = viewScope.get("title");
var docId = viewScope.get("id");
var selDocID = vProductListCollection.getUniversalID();
if(docId.contains(selDocID )) {
prodTitle.remove(colTitle );
docId.remove(selDocID );
} else {
prodTitle.add(colTitle );
docId.add(selDocID );
}
}]]></xp:this.action>
</xp:eventHandler>
</xp:checkBox>
Postopen事件:
var titleList = new java.util.ArrayList();
ViewScope.put('title', titleList );
var idList = new java.util.ArrayList();
viewScope.put('id', idList );
在我的提交按钮(为新的主文档创建响应文档),我有:
currentDocument.save()
var TL:java.util.ArrayList = viewScope.get("title");
var Id:java.util.ArrayList=viewScope.get("id");
for(var x=0;x<Id.size();x++){
var doc=database.getDocumentByUNID(Id.get(x));
var resdoc:NotesDocument=doc.copyToDatabase(database);
resdoc.makeResponse(currentDocument.getDocument());
resdoc.save();
}
当我提交我的主文档得到保存,但没有响应文档,和提示?
copyToDatabase()
有时工作不太好。解决方法和最佳实践是创建一个新文档并复制所有项。
你的代码可能看起来像这样:
for(var x=0;x<Id.size();x++){
var doc=database.getDocumentByUNID(Id.get(x));
var resdoc:NotesDocument=database.createDocument();
doc.copyAllItems(resdoc, false);
resdoc.makeResponse(currentDocument.getDocument());
resdoc.save();
}
更新:
我发现了不创建响应文档的原因:您的Postopen(?)事件代码从未作为SSJS执行。它会抛出一个错误,因为它有一个大写字母"V"在"ViewScope.put('title'…"。因为代码永远不会被执行,viewScope "Id"保持为空,因此创建响应文档的for循环永远不会进入。
将正确的代码放入beforePageLoad事件中,它将工作。
<xp:this.beforePageLoad><![CDATA[#{javascript:
var titleList = new java.util.ArrayList();
viewScope.put('title', titleList );
var idList = new java.util.ArrayList();
viewScope.put('id', idList );}]]>
</xp:this.beforePageLoad>
相关文章:
- 从Javascript和Php变量创建Html模板文档
- 从Google Analytics文档中重新创建滚动效果
- 返回午夜后创建的文档
- 为任意html文档创建不引人注目的覆盖
- 如何将文档对象创建为HTML页面
- 创建自己的文档Javascript
- 聚合以按大小创建文档组
- 挂钩文档.使用函数原型创建元素
- 检查文档是否已经存在,如果是则更新,否则创建新的Mongoose
- 如何通过Google Drive Javascript OAuth2 API创建Google Sheets文档
- Mongoose创建一个文档,如果找不到指定的字段,则更新文档中的数组
- 从xmldocument创建javascript文档
- 如何删除创建的创建文档片段对象
- 如何根据文档创建AngularJS控制器
- 使用Javascript和可编辑文档创建内容助手(ctrl+space)
- 文档创建完整元素
- XPage ajax文档创建
- 通过Json文档创建超链接
- 使用XPages从dataTable中的选定文档创建响应文档
- 用文档创建元素.createElement留在内存中