XPages:dijit.Tree dojo.xhrPost和Partial Refresh?

时间:2015-12-15 11:19:31

标签: dojo xpages xpages-extlib dijit.tree

我有dijit.Tree,效果很好。如果节点有特殊授权,用户可以在this tree (jsfiddle)上添加,删除和重命名节点。

下一步是将此更改发回服务器,这是完美的,使用dojo.xhrPostXAgent而不是XAgent)可以使用扩展程序实现此功能类型为customRestService的REST服务的库控件。但是,直到domino版本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;)?
  2.   

    优点:无需部分刷新

         

    缺点:我无法使用已实现的自定义控件(例如,计算出的渲染属性)

    1. 成功xhrPost后进行部分刷新? 如果这是正确的选择,那么在成功的xhrPost之后我应该如何实现部分刷新?
    2.   

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

      1. 做点什么吗?
      2. 我不确定哪种方法可以满足我的要求?

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

        提前感谢您的回答。

0 个答案:

没有答案