基于此XPages adding @Formulas in dialogList,我的dialogList1从两个串联的 View 中获取值:ab

还有另一个dialogList2,将根据dialogList1值是否为null来呈现,其值应如下所示:

dialogList1.value来自a => dialogList2.choices应该仅来自b

dialogList1.value来自b => dialogList2.choices应该仅来自a

我试过了:

// Contr.txt_particontractcv_1 - is the value binded by dialogList1
var dbname = session.getServerName() + "!!" + "mynsf.nsf";

    //var a = @Unique(@DbColumn(dbname, "vwNumeCompanii", 0)).sort();
    //var b = @Unique(@DbColumn(@DbName(),"vwA",0));

    //return a.concat(b);
    if ( @IsMember(Contr.txt_particontractcv_1,@Unique(@DbColumn(@DbName(),"vwA",0))))
    { return @Unique(@DbColumn(dbname, "vwNumeCompanii", 0)) }

    else
    { return @Unique(@DbColumn(@DbName(),"vwA",0)) }

但是dialogList2只从vwA(从b)获取值...我想我缺少了一些东西。谢谢你的时间。

最佳答案

Contr.txt_particontractcv_1不能在SSJS中使用。点表示法可在LotusScript中使用,但不能在SSJS或Java中使用,因为Java的运行时不是专有的,并且尚未以这种方式扩展。这就是为什么需要Contr.getItemValueString("txt_particontractcv_1")的原因。

一些SSJS全局变量允许使用点符号,例如sessionScope。但这是因为它基于Map,所以sessionScope.myProperty只能映射到sessionScope.get(“myProperty”)。 Domino Document类不扩展Map接口(interface)(这是OpenNTF Domino API的增强功能之一),因此点表示法不知道是否使用getItemValue(),getItemValueString(),getItemValueDateTimeArray()等。

这也是为什么作用域变量的最佳做法也是使用例如sessionScope.get(“myVar”)。当涉及到Java时,您将不能使用点表示法,而必须使用相关的方法。因此,在SSJS中以这种方式工作会养成 future 的良好习惯。

关于对话框列表项值中的xpages @IsMember函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25664578/

10-09 02:20