これまで、ネットを検索することでXPagesに関連するすべての問題を解決することができましたが、これは私を夢中にさせ続け、私は本当にいくつかの助けを使うことができました:
XPageには、動的データソースを備えたパネルがあります(documentidとactionが計算されます(からの値sessionScope
))。このパネルには、「単純な製本」を介してデータソースにバインドされる複数の編集ボックスがあります。パネルの外側には、ユーザーが表示するドキュメントを選択できるコンボボックスと、新しいドキュメントを作成するためのボタンがあります。コンボボックスの値が変更されたら、documentidとactionをに入れsessionScope
て、パネルの部分的な更新を実行します。すべてが正常に機能し、ドキュメントは正しい方法で表示されます。ボタンを押して新しいドキュメント(documentid = ""、action = "newDocument")を作成すると、新しいドキュメントが表示され、パネルの編集ボックスが空になります。
ただし、新しいドキュメントを作成した後でコンボボックスから既存のドキュメントを選択すると、編集ボックスは更新されませんが、作成したばかりのドキュメントと同じままになります。データソースに対して部分的な更新が機能していることはわかりましたが(documentidは正しい)、データバインディングが機能しなかったようです。つまり、ドキュメントの値が編集ボックスに書き込まれていません。その後、コンボボックスから別のドキュメントを選択するか、別の部分的な更新を実行すると、データバインディングが突然再び機能します。
誰かがこれを解決する方法を知っていますか?ここで2つの部分的な更新が必要なのはなぜですか?
私がこの問題を解決しようとしましたが、うまくいきませんでした:
- リクエストするデータソースのスコープを変更する
- パネルの部分的な更新ではなく、完全な更新を実行する
ignorerequestparameter
に設定true
- のすべての可能な設定
computewithform
ドキュメントから編集ボックスに手動でデータを書き込むことができることは知っていますが、回避策なしでこれを解決できるはずだと思います。