0

我有一个 xe:djComboBox 的预先输入功能的用例,但我想将输入的值限制为控件的 selectItems。在以下代码示例中,selectItems 从名为 viewStates 的 Domino View 数据源返回 50 个状态。我尝试使用代码中的验证器验证所选/值,但仍然接受任何输入的值。有任何想法吗?

<xe:djComboBox id="djComboBox2"
                value="#{document1.Text_3}" ignoreCase="true"
                promptMessage="Type or select a State"
                invalidMessage="Not a valid State selection"
                validator="#{javascript:(@IsMember(this.getValue(),viewStates.getColumnValues(0)))? true : false;}">


                <xp:selectItem itemLabel=""></xp:selectItem>
                <xp:selectItems>
                    <xp:this.value><![CDATA[#{javascript:viewStates.getColumnValues(0)}]]></xp:this.value>
                </xp:selectItems>

            </xe:djComboBox>
4

4 回答 4

3

请改用 xe:djFilteringSelect 控件。它将可能的条目限制为 selectItem 和 selectItems 中的条目。

于 2012-10-23T14:44:43.183 回答
1

Paul,看看 Validators 下的 PickerValidator。

于 2012-10-23T14:42:25.220 回答
1

根据霍华德的建议,这行得通......

<xe:djComboBox
        id="djComboBox2"
        ignoreCase="true"
        promptMessage="Type or select a State"
        invalidMessage="Not a valid State selection">


        <xe:this.validators>
            <xe:pickerValidator message="Enter the right state">
                <xe:this.dataProvider>
                    <xe:dominoViewNamePicker
                        viewName="USStates"
                        labelColumn="abbreviation">
                    </xe:dominoViewNamePicker>
                </xe:this.dataProvider>
            </xe:pickerValidator>
        </xe:this.validators>
        <xp:selectItem itemLabel=""></xp:selectItem>
        <xp:selectItems>
            <xp:this.value><![CDATA[#{javascript:viewStates.getColumnValues(0)}]]></xp:this.value>
        </xp:selectItems>

    </xe:djComboBox>
于 2012-10-23T15:51:42.217 回答
0

您正在使用“验证器”属性,您需要使用“验证器”属性之一,例如 customValidator。

于 2012-10-23T14:56:03.290 回答