美好的一天!
我在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:请参阅下面的评论......
答案 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函数。我个人比我的第一个建议更喜欢这个。