JSON-RPC和当前文档的句柄

时间:2016-02-11 21:39:42

标签: xpages datasource rpc

美好的一天!

我在XPage中有一个JSON-RPC服务调用(CSJS)来获取viewScope变量的值。我使用此调用循环遍历我的字段名称(动态)并验证它们。

我无法从RPC服务中找出如何获取这些字段绑定到的数据源(在我的情况下为document1)的句柄。

这是电话:

// Use the JSON-RPC Service to get the number of asset item rows 
// from the viewScope variable
var deferred = myRPCService.getScopeVar();
deferred.addCallback(function(result){

alert(result); // <-- viewScope variable value

// get the dynamic field names for the asset items based on row #
var itemname = '';    
for (var i = 1; i < result; i++) {
var itemname = 'replace'+(i < 10? '0':'')+ i
if (document1.getItemValueString(itemname) == ""){
    // do this
} else{
    // do that
}    
}
});

我确实从RPC调用中获取了viewScope变量的值,但我不能超越它。任何指针/示例都将不胜感激。

谢谢,

PS:请参阅下面的评论......

1 个答案:

答案 0 :(得分:1)

你不能说出调用JSON-RPC事件的内容,所以我会猜测并说它是一个按钮。您必须有一个其他服务器端事件,将viewScope变量设置为document1.getItemValueString(itemname)的值,然后您可以在RPC中检索该值。

您的SSJS事件代码如下所示:

viewScope.result = document1.getItemValueString(itemname);

附加事件可以是onmouseover (不推荐)或onkeypress。我假设您使用onclick客户端来获取此代码,您无法使用onclick服务器端,因为此代码需要在您的客户端之前运行。您将希望viewScope包含新数据,因此这个建议。如果数据不需要新鲜,则在页面加载时设置它。

另一个想法是调用两个RPC。第一个可以设置viewScope变量,第二个可以使用它。第一个不需要回调,只需调用设置viewScope的java或SSJS函数。我个人比我的第一个建议更喜欢这个。