私はこれを完全に確認することはできません:私の場合、それは私のテストサーバー上の魅力のように機能します(ローカルでさえ試しませんでした)。これが私のコードです:
comboBox#1は、同じデータベースの分類されたビューからその値を読み取ります。
<xp:comboBox id="comboBox1" value="#{viewScope.combo1}">
<xp:selectItems>
<xp:this.value>
<![CDATA[#{javascript:@DbColumn(@DbName(), "myView", 1);}]]>
</xp:this.value>
</xp:selectItems>
<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="panelC2">
</xp:eventHandler>
</xp:comboBox>
コンボのonchangeイベントが、コンボボックス#2のコンテナーであるパネルで部分的な更新を実行することを確認します(これがあなたの場合に欠落している可能性がありますか?)
これを解決するために、残りは次のとおりです。combo#2は、@ DbLookupを使用して値の配列を取得します。この配列は、combo#1で選択された値でフィルタリングされ、viewScope変数に格納されます(Stephanに同意できませんでした)ここで:scope-varを使用すると、作業がはるかに簡単になります!):
<xp:panel id="panelC2">
<xp:comboBox id="comboBox2" value="#{viewScope.combo2}">
<xp:selectItems>
<xp:this.value>
<![CDATA[#{javascript:@DbLookup(@DbName(), "myView", viewScope.combo1, 5);}]]>
</xp:this.value>
</xp:selectItems>
</xp:comboBox>
</xp:panel>