ユーザーが新しい日付 (WebService からのデータ) を設定するたびに、グリッドを補充する必要があります。イベントのトリガー順序によると、次のことを考えていました。
(1) アクション イベント: プロシージャを呼び出してデータを取得し、変換し、SDT に入力して、WebSession 変数に配置します。
(2) Refresh Event: 新しい値でローカル SDT を再構築します。
(3) Load Event: グリッドをロードします。
ただし、これをビルドすると、次のような警告が表示されます。
spc0185: Websession のコンテンツは、Refresh イベントの呼び出し間で保持されません。
そして、動作が少し奇妙であることを確認できます (グリッドは、ユーザーが最初に日付を変更したときにのみ更新されます)。
Event &myDate.ControlValueChanged
composite
setGridJson(&mydate)
Refresh
endcomposite
Endevent
Event Refresh
&mydate = ctod(&websession.get('newDate')) //to refresh the date var
&myJSON = &websession.get('GridJSON')
&mySDT.FromJson(&myJSON)
Endevent
Event Load
for &mySDTItem in &mySDT
&field1 = &mySDTItem.field1
&field2 = &mySDTItem.field2
&field3 = &mySDTItem.field3
LOAD
endfor
Endevent
これに対する回避策はありますか? &myDate 変数が変更されるたびにグリッドを補充するにはどうすればよいですか?
ありがとう