在一个绑定到其onw文档数据源(“父”)的xpage中,我有一个重复控件显示一些视图数据(包含依赖文档或“响应”)以及一个用于创建新“响应”的按钮“-documents。响应的数据显示在同一页面上的单独面板中,只有在选择重复的响应或创建新响应时才能看到。 doc数据源绑定到“动态”响应文档面板周围的面板,如下所示:
<xp:panel id="panelFlDs">
<xp:this.data>
<xp:dominoDocument var="dsDocFileLink" formName="fmFileLink"
ignoreRequestParams="true">
<xp:this.documentId><![CDATA[#{javascript:viewScope.get("unidFileLink")}]]></xp:this.documentId>
</xp:dominoDocument>
</xp:this.data>
<xp:panel id="panelFlForm">
<xp:this.rendered><![CDATA[#{javascript:viewScope.get("showDialogFileLink")=="1"}]]></xp:this.rendered>
<xc:ccFormFileLink></xc:ccFormFileLink>
</xp:panel>
</xp:panel>
正如您所看到的,我正在尝试将我的数据源绑定到使用viewScope传递的docUnid。对于新的文档,这对于现有文档也适用(有一点需要注意,见下文),我只是在显示面板之前删除了viewScope变量。对于新的响应,我还使用与
中相同的按钮代码从父级设置了一些继承的字段值dsDocFileLink.replaceItemValue("flType", "flTypeFile");
dsDocFileLink.replaceItemValue("glBlockID", dsDocFileLinkBlock.getItemValueString("glBlockID"));
dsDocFileLink.replaceItemValue("histCreatedOn", @Now());
等
需要注意的是,我无法连续创建两个新文档:第二个和所有后续新文档似乎使用与第一个相同的数据源:它们的可编辑字段显示以前编辑过的新文档中的值。
我尝试按照Sven Hasselbachs的好例子(here和here)创建新的数据源对象(并清除旧的对象),但正如Sven在他的博客文章中指出的那样,我无法立即使用我新创建的数据源。因此,我可以创建一个新的ds,但我不能像我计划的那样使用继承,因为数据源还不可用。
在我尝试使用默认值等可编辑字段重新编写所有内容并在数据源级别开始继承之前:这是否是我的任务的正确方法,还是我应该在某个地方再转一圈?
编辑:我只是尝试没有继承,即创建新的repoonse,填写一些值,然后保存&amp; close(注释:“关闭”隐藏响应数据面板),然后创建第二个新的回应。结果:第二个响应再次包含我为第一个响应填写的值。我的创建修改后的创建按钮现在看起来像这样:
var panelFlDs:com.ibm.xsp.component.UIPanelEx = getComponent("panelFlDs");
var ds = new com.ibm.xsp.model.domino.DominoDocumentData();
ds.setVar("dsDocFileLink");
ds.setFormName("fmFileLink");
panelFlDs.getData().clear();
panelFlDs.addData(ds);
viewScope.remove("unidFileLink");
viewScope.put("showDialogFileLink", "1");
祝你好运
洛萨
答案 0 :(得分:3)
进入数据源的所有属性以进行重复控制。并且存在“范围”设置。默认为viewScope。将其更改为requestScope,以便它不会保留您创建的第一个文档。然后每次都应该是一个新文件。