【问题标题】:Inline Editing of View data used in a repeat重复使用的视图数据的内联编辑
【发布时间】:2013-05-17 15:46:55
【问题描述】:

我有一个重复控件,它使用视图作为数据源,其中包含一个自定义控件。自定义控件由一个带有两个表格的面板组成。一个表具有带有“编辑”按钮的计算字段,另一个具有带有“保存”和“取消”按钮的可编辑字段。 Edit 和 Cancel 按钮根据需要工作,但 Save 按钮给出 NotesDocument.save() is null 错误。通过注释掉之前的所有行,我已经将问题缩小到 edoc.save() 行上发生的错误。我什至尝试做一个 edoc.lock(),但得到了同样的错误。

var edoc:NotesDocument = database.getDocumentByUNID(viewScope.get('docid'));
edoc.replaceItemValue('Ext_1',viewScope.get('ext_1'));
edoc.replaceItemValue('DID',viewScope.get('did'));
edoc.replaceItemValue('Mobile',viewScope.get('mobile'));
try {
edoc.save();
} catch(e) {
print(e.toString());
}

【问题讨论】:

  • 你能多展示一些示例 xsp 代码吗?

标签: xpages


【解决方案1】:

在 viewScope 中存储 DocID 和重复控件似乎不正确。您想向您的自定义控件添加一个名为 DocID 的自定义属性,而不是

    database.getDocumentByUNID(viewScope.get("docid"));

你这样做:

    database.getDocumentByUNID(compositeData.DocID);

这是您可以确保获得该行的该视图中的文档。 您还可能会考虑,而不是所有手动步骤(您注释掉的那些)有一个带有 DocumentDataSource 的面板,然后简单地将您的输入字段绑定到该面板。通过自定义属性和“IgnoreRequestParameter = true

移交 id

然后您只需执行 rowDoc.save() (假设您将数据源命名为 rowDoc),您不需要回收任何东西。让我们知道进展如何。

【讨论】:

  • 我是ignoreRequestParams,斯蒂芬。 ;)
  • @Timtripcony 拼写从来不是我的领域,赞美属性表和下拉菜单
  • @stwissel @Timtripcony 我已经将自定义属性从 XPage 传递到自定义控件,但是我的自定义控件嵌套在我的重复中,每条记录最终都处于编辑模式。这里是我的XPage代码:<xp:panel id="repeatpanel"> 987654326 <xp:dominoView var="phoneportal" viewName="By Name"> 987654328 </xp:this.data> 987654330 <xp:repeat id="repeat1" value="#{phoneportal}" var="buscards" 987654332 <li> 987654334 </li> 987654336 </ul> 987654338 @ 跨度>
  • 这里是<xc:buscard> ` 在未被编辑时可见 计算字段绑定到使用编辑按钮重复
    编辑时可见 可编辑字段绑定到重复保存和取消纽扣;保存按钮抛出之前声明的空错误
  • 文档数据源需要在你想要的自定义控件里面有2个自定义参数:DocId和isedit(布尔型,默认为false)。您将 DocId 绑定到重复,将内部面板的数据源绑定到复合数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
  • 2018-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多