我在XPage上有一个名称选择器,其中包含dataProvider dominoNABNamePicker,其中addressBookSel = all-public,people和groups = true。使用Notes客户端在Domino服务器上使用数据库,它将显示我的本地Names.nsf。如果我在brouse中打开数据库,它会从服务器中选择正确的names.nsf。 无法弄清楚这是否是我的客户端,服务器或XPage中的设置的结果。在两台不同的PC上做同样的事情。 我认为所有公众都会强迫它只开放公共NAB,但事实并非如此。
答案 0 :(得分:0)
我自己也问了同样的问题。
答案,在控件添加中 addressBookDb = “SERVER !! NAMES.NSF”
从这里开始。
Can I have the extlib name picker running in xPINC lookup the directory on the server?
答案 1 :(得分:0)
经过一段时间的挫折之后,我将其用于Notes客户端和Web客户端。也许对大多数人来说这是显而易见的,但肯定不是我。 首先在名称选择器上创建了一个namePickerAggregator。然后我添加了一个dominoNABNamePicker 在addressBookDb中我放了以下SSJS:
var server:String = @Name("[CN]",session.getCurrentDatabase().getServer());
var allNABs:Array = session.getAddressBooks().iterator();
var pubNABs = new Array;
var privNABs = new Array;
while (allNABs.hasNext()) {
var db:NotesDatabase = allNABs.next();
if (db.isPublicAddressBook()){
pubNABs.push(db.getFileName())
} else {
privNABs.push(db.getFileName())
}
db.recycle()
}
if (pubNABs[0] == ""){
return privNames[0];
break;
} else {
return server + "!!" + pubNABs[0];
break
}
然后我添加了第二个带有相同代码块的dominoNABNamePicker,除了返回
if (pubNABs[1] != "") {
return server + "!!" + pubNABs[1];
break;
} else {
return "";
}
此代码适用于Notes客户端和Web客户端,所以我现在是一个快乐的露营者,除非我在某个地方找到了问题。
答案 2 :(得分:0)
这是我最终做的。我设置了4个地址簿的最大数量限制(不是很好,但它有效)4你可以创建任意数量的地址簿。所以我创建了一些我在XPage上的After Page Loads事件中创建的sessionScope变量。我用这个公式。
var allNABs:Array = session.getAddressBooks().iterator();
var pubNABs = new Array;
var privNABs = new Array;
while (allNABs.hasNext()) {
var db:NotesDatabase = allNABs.next();
if (db.isPublicAddressBook()){
pubNABs.push(db.getFilePath())
} else {
privNABs.push(db.getFilePath())
}
db.recycle()
}
sessionScope.put("ssPublicNABs", pubNABs);
sessionScope.put("ssPrivateNABs", privNABs);
因为我在同一页面上使用了几个不同的名称选择器,所以我不想重复遍历地址簿。 然后我创建了4个NamePicker控件,并为每个连续控件添加了1,2,3和4个dominoNABNamePickers提供程序。然后根据公共地址簿的数量设置渲染属性,这样它们就不会炸毁我。每个提供程序的db name属性为:
var server:String = @Name("[CN]",session.getCurrentDatabase().getServer());
var pubNABs:Array = sessionScope.get("ssPublicNABs");
return server + "!!" + pubNABs[0];
其中pubNABs [n]为NAB返回正确的filePath。它在Notes客户端和Web中都很好用。 然后,为了使它不会在本地断开连接的副本上爆炸,我创建了另外4个控件并做了同样的事情,但使用了具有适当渲染属性的privNAB,以便没有冲突。好像很长的路要走,我确信有一种更简单的方法,但它确实有效。