1

我有一个dijit.Tree工作正常。用户可以在这棵树(jsfiddle)上添加、删除和重命名节点,如果他们有特殊授权的话。

下一步是将此更改发布回服务器,该服务器完美运行,dojo.xhrPostXAgent(而不是 XAgent 结合使用,可以使用 REST-Services 类型的扩展库控制来实现此功能customRestService。但是,直到多米诺骨牌第 9 版...

源代码:

<xp:button value="Submit tree updates back to server " id="btnSubmit">
    <xp:this.onclick><![CDATA[dojo.xhrPost({
url: "folderService.xsp", // XAgent
handleAs: "json",
timeout: 1000,
postData: treeStore._getNewFileContentString(), // treeStore
headers: { "Content-Type": "application/json", "Accept": "application/json" },
load: function(data) {
    if (data.success) {
        console.log("all folders saved " + data.success);
        dojo.byId("#{id:txtMessage}").innerHTML = data.message; ???
        dojo.removeClass("#{id:txtMessage}", "lotusHidden"); ???
        XSP.partialRefreshGet("#{id:wrapper}", {}); ???
    }
},
error: function() {
    dojo.byId("#{id:txtMessage}").innerHTML = 'Oops something goes wrong. The update on the folders weren\'t saved.'; ???
    dojo.removeClass("#{id:txtMessage}", "lotusHidden"); ???
    XSP.partialRefreshGet("#{id:wrapper}", {}); ???
} 
});]]></xp:this.onclick>
</xp:button>

现在的问题:

我需要向用户显示一些从服务器返回的信息(load : function(data) {...})。

可能的解决方案:

  1. 只在客户端(例如dojo.byId("#{id:txtMessage}").innerHTML = data.message;)做吗?

优点:不需要部分刷新

缺点:我不能使用已经实现的自定义控件(例如计算渲染属性)

  1. 成功后做一些部分刷新xhrPost吗?如果这是正确的选择,我应该如何以及在成功执行 xhrPost 后实现部分刷新?

我的感觉说不,因为为什么我应该只为使信息可见(例如渲染属性......)进行部分刷新。

  1. 做点别的吗?

我不确定哪个是处理我的要求的最佳方法?

提示:我正在开发 Domino Sever 8.5.3 FP6

提前感谢您的任何回答。

4

0 回答 0