別のページに移動して戻ったときに、状態を頂点ページに保持することを知っている人はいますか? フィールドに入力された値は保持されず、すべて空に見えます。誰でも助けていただければ幸いです。ありがとう
2 に答える
ApExのバージョンは何ですか?
デフォルトでは、ページを送信すると、アイテムの値は自動的にセッション状態に設定されるため、ページに戻ったときにアイテムの値を再度見つける必要があります。
Firefoxはページの更新時にフォーム要素の値を保持するため、表示される値が実際にセッション状態にある値に対応しない場合があることに注意してください...解決策は、ページのセキュリティ属性で«フォームオートコンプリート»属性を「オフ」に設定することです。 、または
$('#wwvFlowForm').attr('autocomplete','off');
ページの読み込み時に使用します。
ページを送信せずに手動で値をセッション状態に設定する場合:
- PL / SQLから、以下を使用できます
APEX_UTIL.SET_SESSION_STATE
(ドキュメントを参照) 。 - JavaScriptから、次のようなダミーのアプリケーションプロセスを呼び出す必要があります。
setItemInSessionState: function(p_item, p_value) { var l_get = new htmldb_Get(null,$('#pFlowId').val(),'APPLICATION_PROCESS=dummy',0); l_get.add(p_item, p_value); l_get.get(); }
最後に、アイテムの[ソース]タブで[セッション状態の維持]属性を変更することにより、セッションごとに、またはセッション間でユーザーのセッション状態を維持することを選択できます。また、データの機密性が高い場合は、アイテムの「セッション状態保護」属性を「はい」に設定できます。
ページ間でアイテムの値を保持するソリューションは他にもたくさんあります。URLの値を非表示のアイテム、apexコレクション、基本的なデータベースストレージ、Cookieなどに渡します。
これで質問に答えられない場合は、詳細をお知らせください。
おそらく、入力を保存するためにセッションを使用する必要があり、クライアントがそのページに戻ったときに、保存したデータをセッションに配置するだけです。