Dojo列表文本框自动分隔符

时间:2014-08-05 08:33:02

标签: dojo xpages

当我们开始在我们的一个应用程序中使用Dojo列表文本框时,我遇到了这个问题,这个Dojo控件似乎有一个内置分隔符,自动将包含逗号的每个String拆分成额外的数组项。 / p>

验证此行为的代码:

<xe:djextListTextBox id="djextListTextBox1"></xe:djextListTextBox><xe:valuePicker id="valuePicker1" for="djextListTextBox1">
        <xe:this.dataProvider>
            <xe:simpleValuePicker>
                <xe:this.valueList><![CDATA[11111
222,22
33333]]></xe:this.valueList>
            </xe:simpleValuePicker>
        </xe:this.dataProvider>
    </xe:valuePicker>

我设法通过手动定义另一个分隔符

来解决这种情况
 multipleSeparator="|"

似乎覆盖了默认分隔符,但我仍然非常有兴趣验证此发现以及专家提供的有关如何正确处理此控件以供将来参考的提示。

1 个答案:

答案 0 :(得分:1)

是的,它使用“,”作为默认分隔符。

它在dojo小部件源代码_ListTextBox.js中定义(在com.ibm.xsp.extlib.controls包中,\resources\web\extlib\dijit文件夹。这是几个组件的基本小部件(例如ListTextBox, NameTextBox等)和多项分隔符(msep)默认为“,”。

基本上,这些组件会将值保留在隐藏的输入框中并提交该值。在内部,他们将提交的值转换为向量并存储到数据绑定中。因此,只要您的值列表中没有声明的分隔符,就可以使用任何分隔符。

我遇到的一个问题是\n,因为我过去遇到过一些问题。使用“;”或“,”对ListTextBox没有问题。但是,NameTextBox不适用于除“,”之外的任何分隔符。没什么大不了的,因为它只是名字元素。如果使用“,”,则此组件会正确保留值,但不能很好地呈现。