Dojo名称选择器 - 姓氏和组的人

时间:2014-06-13 11:20:04

标签: dojo xpages

我在我的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”,我可以按照自己的意愿使用它们,但不需要组。

那么如何按姓氏和所有群组获取所有人的列表?或者我该如何解决这个问题?有什么想法吗?

2 个答案:

答案 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的问题。我们已经扩展了名称选择器,所以我也会考虑将其添加到其中