0

xe:djComboBox の先行入力機能の使用例がありますが、入力される値をコントロールの selectItems に制限したいと考えています。次のコード例では、selectItems は、viewStates という Domino ビュー データ ソースから 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

ハワードの提案によると、これはうまくいきました...

<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 に答える
1

ポール、Validators の下にある PickerValidator を見てください。

于 2012-10-23T14:42:25.220 に答える
0

customValidatorなどの「Validators」プロパティの1つを使用する必要がある場合は、「Validator」プロパティを使用しています。

于 2012-10-23T14:56:03.290 に答える