0

djextListTextBox の変更イベントの後に依存コントロールを更新する際に問題が発生しました。

コードの一部を次に示します。

...
<xe:djextListTextBox id="reinsuranceIdentifier" 
    value="#{offerAccount.reinsuranceIdentifier}" multipleSeparator=","
    multipleTrim="true" displayLabel="true">
    <xp:eventHandler event="onChange" submit="false">
        <xp:this.script><![CDATA[alert("reinsuranceIdentifier - onChange");
            XSP.partialRefreshGet("#{id:computedField1}", {});]]></xp:this.script>
    </xp:eventHandler>
</xe:djextListTextBox>
...
<xe:valuePicker id="valuePickerReinsuranceIdentifier"
    for="reinsuranceIdentifier" dialogTitle="Reinsurance"
    pickerIcon="/dropdown_16x16.gif">
    <xe:this.dataProvider>
        <xe:simpleValuePicker labelSeparator="|">
            <xe:this.valueList><![CDATA[#{javascript:var key = "Reinsurance_" + sessionScope.language;
                return getMultiParams(key, 4, true, true);}]]></xe:this.valueList>
        </xe:simpleValuePicker>
    </xe:this.dataProvider>
</xe:valuePicker>
...
<xp:text escape="true" id="computedField1">
    <xp:this.value><![CDATA[#{javascript:return "v: " + getComponent("reinsuranceIdentifier").getValue() + " -" + offerAccount.getItemValue("reinsuranceIdentifier") + " -" + offerAccount.getItemValue("reinsuranceIdentifier").get(0);}]]></xp:this.value>
</xp:text>
...

リフレッシュ後、計算フィールドには次の値が表示されます: v: -[] -

「reinsuranceIdentifier」listTextBox のコンポーネント値とデータソース項目値の両方が空であることを示しています....

何がうまくいかないのですか??

リスト テキスト ボックスの値に応じて他のフィールドを変更する必要がありますが、これは不可能ですか?

ありがとうマリオ

4

1 に答える 1

0

onchange で送信していないため、データソースには値がありません。あなたの問題が正確にはわかりません(あなたのデータなどを持っていないのでわかりにくいです)が、以下のコードは変更であり、私にとってはうまく機能します。複数のコントロールを実行するためにそのようにする必要がない限り、この方法で部分的な更新を行ってみてください。

    <xe:djextListTextBox id="reinsuranceIdentifier" 
        value="" multipleSeparator=","
        multipleTrim="true" displayLabel="true">
        <xp:eventHandler event="onChange" submit="true"
            refreshMode="partial" refreshId="computedField1">
        </xp:eventHandler>
    </xe:djextListTextBox>

    <xp:br></xp:br>
    <xp:br></xp:br>

    <xe:valuePicker id="valuePickerReinsuranceIdentifier"
        for="reinsuranceIdentifier" dialogTitle="Reinsurance">
        <xe:this.dataProvider>
            <xe:simpleValuePicker valueListSeparator=",">
                <xe:this.valueList><![CDATA[#{javascript:
                    return "test1, test2, test3, test4";
                }]]></xe:this.valueList>
            </xe:simpleValuePicker>
        </xe:this.dataProvider>
    </xe:valuePicker>

    <xp:br></xp:br>
    <xp:br></xp:br>

    <xp:text escape="true" id="computedField1">
        <xp:this.value><![CDATA[#{javascript:return "v: " + getComponent("reinsuranceIdentifier").getValue();}]]></xp:this.value>
    </xp:text>
于 2012-07-11T13:32:59.870 に答える