2017-03-11 13 views
0

私は、いくつかのフォームを含むページと、レコードを保存するための送信ボタンを持っています。何らかのエラーがある場合は、プログラムでエラーメッセージをfacesメッセージで表示します。ADFページのスクロール位置を保持する

afメッセージの[OK]ボタンをクリックすると、ページが一番上にスクロールし、もう一度スクロールしてボタンをクリックする必要があります。

ADFでスクロール位置を保存する方法はありますか?私は

window.scrollToは()メソッド

しかし、他の方法のために、それはAFメッセージ[OK]ボタンをクリックした後に罰金ではなく、作業のJavaスクリプトを呼び出そうとしました。

ページの下部までスクロールする方法を教えてください。

+0

これは実際にはJSの問題ではありません.JSFでは、あなたのページは単に送信されているため、同じページ上でリダイレクトが発生し、ページがスクロールされないのが原因です。 ** sessionStorage **内でスクロール位置を維持するような醜いハックを実装することもできますが、まず自分自身に尋ねます。https://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage – grzesiekgs

+0

もしページが上にスクロールする理由を考えようとしますか? partialSubmit = trueのactonListenerを呼び出すボタンがありますか?この場合、ページは一番上にスクロールしてはいけませんが、アクションメソッドを呼び出す場合はyesです。 – markosca

答えて

1

markoscaはすでに正しいヒントをコメントとして与えています。 私は完全な答えのために、この上のビットを明確にされます:

  • あなたのボタンがアクションをトリガーする場合は、常に完全な新しいサイトがロードされます。 "新しい"サイトが古いものと等しい場合でも、サイトがスクロールアップしたように見えます。
  • ボタンにactionListenerが登録されている場合、このスクロールも行われます。その登録されたJavaメソッドの中にaddPartialTarget(...)を置いても。

これはどのように解決するのですか?簡単ですが、はボタンまたはリンクでactionListenerを使用し、属性partialSubmit = "true"を使用します。

フルページのリロードではなく、部分的なサブミットのみが実行されます。

JavaでaddPartialTarget(...)を使用するか、その部分送信のために更新するコンポーネントでpartialTriggers = "..."属性を使用することを忘れないでください。

関連する問題