xpages值选择器多个databaseNames

时间:2014-09-29 08:22:32

标签: xpages

是否可以在<xe:valuePicker>内声明2个daatabaseNames?

我希望从2个不同的数据库中连接2个视图,并让用户有权选择多个值。

对于第一个视图,我确实希望列出所有条目。

对于第二个视图,我想抓住以下条目:

@Unique(@DbLookup("server!!my.nsf", "vwNumeCP", hehe, 2));

,其中

var hehe = docProiect.getItemValueString("Comp");

2 个答案:

答案 0 :(得分:2)

如果您习惯使用java,可以使用beanValuePicker数据提供程序,并从托管bean中的两个不同数据库中提取数据。创建一个实现IValuePickerData的Java类。有关创建托管bean数据提供程序的信息,请参阅herehere

或者您可以使用simpleValuePicker数据提供程序,并在valueList属性中使用SSJS从两个来源中提取数据。

否则作为解决方法/ hack-around,namePicker控件有一个名为namePickerAggregator的数据提供程序,允许您定义要在选择器中显示的多个数据提供程序,包括使用来自不同数据库的数据但是没有valuePicker的提供者。如果您愿意接受名称选择器与值选择器附带的稍微不同的UI,请使用namePickerAggregator和两个dominoViewValuePicker数据提供程序。像这样:

<xe:namePicker id="myPicker" for="inputText1">
    <xe:this.dataProvider>
        <xe:namePickerAggregator>
            <xe:this.dataProviders>
                <xe:dominoViewNamePicker databaseName="database1.nsf" viewName="AllNames" labelColumn="Name" label="Database1"></xe:dominoViewNamePicker>
                <xe:dominoViewNamePicker databaseName="database2.nsf" viewName="AllNames" labelColumn="Name" label="Database2"></xe:dominoViewNamePicker>
            </xe:this.dataProviders>
        </xe:namePickerAggregator>
    </xe:this.dataProvider>
</xe:namePicker>

答案 1 :(得分:0)

beanValuePicker的替代方法是mapPicker和listPicker类,我为http://openntf.org/XSnippets.nsf/snippet.xsp?id=mappicker-dataprovider-for-vaue-picker添加了XSnippets。这允许您将Java List,Set或Map作为源传递。我还做了一系列关于它的博客文章http://www.intec.co.uk/tag/selections-tutorial/

Java类已作为本机dataProviders合并到OpenNTF Domino API中。