Xpages - 如何为xe:namePicker控件的自定义beanNamePicker添加参数

时间:2016-10-19 09:28:13

标签: xpages lotus-domino lotus xpages-ssjs xpages-extlib

我需要一个名称控件,允许用户仅从一个组中选择人员。我希望有一些可能用组名添加一些参数。

我有以下namepicker

<xe:namePicker id="namePicker1"
                for="myControlId" dialogTitle="Select person">
        <xe:this.dataProvider>
            <xe:beanNamePicker dataBean="mybean.BeanPickerGroupMembers" loaded="true">
                </xe:beanNamePicker>
    </xe:this.dataProvider>
</xe:namePicker>

我的bean看起来像这样:

public class BeanPickerGroupMembers implements INamePickerData {

    public BeanPickerGroupMembers() {}

    @Override
    public IPickerResult readEntries(IPickerOptions options) {
        List<IPickerEntry> entries = new ArrayList<IPickerEntry>();

        //do something according to desired group name

        return new SimplePickerResult(entries, -1);     

    }   

    @Override
    public List<IPickerEntry> loadEntries(Object[] ids, String[] attributeNames) {return null;}

    @Override
    public String[] getSourceLabels() {return null;}

    @Override
    public boolean hasCapability(int capability) {return false;}
}

如何从namePicker将一些组参数传递给我的bean?我知道我可能会使用一些范围变量,但我希望能够在我的提供商选择不同的组时使用多个选择器控件。

1 个答案:

答案 0 :(得分:0)

我有类似的要求。我找不到向名称选择器添加参数的方法 - 但是我将“过滤器值”添加到了一个viewcope变量 - 并且只是在fputs方法的名称选择器代码中检查了它。

所以你有readEntries()我有这段代码:

// Do something....

...在我的if (null != ClubAdminBean.getCurrentInstance().getLocationType()) { locationType = ClubAdminBean.getCurrentInstance().getLocationType(); System.out.println("locationType=" + locationType); } 我已经实现了这个方法来获取bean:

ClubAdminBean

我倾向于在我的所有bean中实现以便于检索: - )

显然,你不需要一个bean - 但也可以只在viewcope变量中存储一个值。

/约翰