我在我的XPage中使用名称选择器,以便轻松选择人员和组。这是我的代码:
<xe:namePicker id="namePicker1" for="Receiver">
<xe:this.dataProvider>
<xe:dominoNABNamePicker groups="true" nameList="peopleAndGroups" people="true"></xe:dominoNABNamePicker>
</xe:this.dataProvider>
<xe:this.rendered><![CDATA[#{javascript:docApplication.getItemValueString("ZwfStepNumber") == 1}]]></xe:this.rendered></xe:namePicker>
如果我使用“peopleAndGroups”作为nameList属性,则所有名称都按名字列出。但是我想要它们的姓氏。所以,如果我至少使用“peopleAsLastName”,我可以按照自己的意愿使用它们,但不需要组。
那么如何按姓氏和所有群组获取所有人的列表?或者我该如何解决这个问题?有什么想法吗?
答案 0 :(得分:2)
您可以使用想要的行为创建自己的名称选择器bean。
您需要创建一个实现INamePickerData
接口的Java类。虽然它被称为bean,但 not 需要在faces-config.xml中注册它。重要的方法是readEntries()
方法,它返回您的自定义名称选择器数据。这是一个简单的例子:
public IPickerResult readEntries(final IPickerOptions options) {
List<IPickerEntry> entries = new ArrayList<IPickerEntry>();
entries.add(new SimplePickerResult.Entry("CN=Person A/O=Org", "Person A");
entries.add(new SimplePickerResult.Entry("CN=Person B/O=Org", "Person B");
return new SimplePickerResult(entries, -1);
}
然后,您可以使用beanNamePicker dataProvider来使用自定义名称选择器。这是一个简单的例子:
<xe:namePicker id="namePickerBean">
<xe:this.dataProvider>
<xe:beanNamePicker>
<xe:this.dataBean><![CDATA[com.company.MyNamePicker]]></xe:this.dataBean>
</xe:beanNamePicker>
</xe:this.dataProvider>
</xe:namePicker>
有an OpenNTF XSnippet with a more complete example of a name picke bean。
答案 1 :(得分:0)
虽然Domino目录中有一个提供该数据的$ PeopleGroupsFlat视图,但它看起来并不像是一个选项。看起来像Picker这个名字正在使用$ VIM ... views。
我能看到的唯一方法是使用namePickerAggregator dataProvider,并允许用户在People By Last Name和Groups之间切换。 (为名称选择器或值选择器扩展dataProvider并不简单,因为许多方法和内部类都受到保护。)
值得将其作为功能请求添加到OpenNTF上的扩展库项目中。我已将其添加为OpenNTF Domino API的问题。我们已经扩展了名称选择器,所以我也会考虑将其添加到其中