0

我在 beforePageLoads 上有一个进程,如果它是 newDocument 则执行。它抓取了一个配置文件文档,其中包含一些我需要复制到正在加载的 XPage 中的字段。我使用以下代码:

var iCol:Array = pDoc.getItems()

    for(var i=0; i<iCol.length; i++){
        var item:NotesItem = iCol[i];
        var iName:String = item.getName();
        if (@Left(iName, 2) == "AC" ){
            iCol[i].copyItemToDocument(doc,"");
        }
        item.recycle()
    } // for loop

其中 pDoc 是配置文件文档,doc 是通过 var doc = document1.getDocument() 获得的后端文档。然后我可以使用 copyItemTODocument 方法,这工作得很好,除了我需要从后端文档刷新数据源。我可以通过按钮执行此操作并进行部分刷新,但这在生产情况下不是一个选项。我尝试了各种刷新选项(在这个论坛中建议),但没有一个能完成工作。我可以将配置文件文档字段中的值复制到数据源中的一个字段,但是由于数据类型,这变得非常混乱。我相信我的刷新问题与在我的代码中更新 doc 而不是 document1 有关。有没有办法从后端文档刷新 document1?

4

1 回答 1

0

这有帮助吗..

http://xpagesblog.com/XPagesHome.nsf/Entry.xsp?documentId=84329CA285163DDF852578CB00669143

它暗示了 osf 可能使用的两件事:“似乎在初始 PageLoad 事件期间,现有数据从 NotesDocument 传输到 NotesXspDocument。只有绑定到 NotesXspDocument(在 XPage 或 CC 上)的那些字段被传输。”

并在评论部分:

“另一种在不保存的情况下从 XspDocument 获取数据到 NotesDocument 的方法是使用 document1.getDocument(true),它基本上会在两个对象之间重新同步数据。

恐怕我没有时间进行实验,但看起来这是正确的路线,尤其是第二部分。道格

于 2013-11-25T10:35:05.797 回答