2012-04-26 4 views
2

私はVisualforceでGoogleのようなアプリケーションを作成しています。このアプリケーションでは、ユーザーが検索キーワードを入力して[検索]をクリックし、その結果が検索ボックスの下に表示されます。ユーザーが検索をクリックすると、その一環として、actionStatusを表示するように設定されている「ロードを...」検索が進行している間:ページコントローラからボタンのクリックをシミュレートするにはどうすればよいですか?

<apex:commandButton value="Search" action="{!runQuery}" status="loading"/> 

今私はランディングページを設定しようとしています、最初の検索のための入力フィールドと[検索]ボタンがある単なるページです。 Googleスタイルでは、最初の検索では検索結果が表示されているページに移動し、検索ボックスは上部に移動します。

問題は、ページの読み込み時にactionStatusを呼び出す方法がわかりません。ユーザーがボタンをクリックしても簡単ですが、ランディングページから検索すると新しいページがロードされ、と表示され、が検索されます。現時点では、コントローラのコンストラクタでパラメータをチェックし、見つかった場合はrunQuery()を手動で呼び出しますが、これはページの読み込み時間を単に延期し、actionStatusを呼び出さないだけです。

アイデア?

答えて

1

onLoadイベントコールを追加しても機能しませんでしたが、ページの最後、つまり終了タグapex:pageの直前にこれを配置しています。なぜ私は完全にはわからないが、それはきれいで、仕事を終わらせる。

<script> 
    runQuery(); 
</script> 
2

使用

<apex:actionFunction name="runQueryJS" action="{!runQuery}" status="loading" /> 

その後、身体のLoadedイベントにハンドラをアタッチ、クライアント側の呼び出しポイントを作成するには(またはあなたがからクエリ実行したいところはどこでも、他)を行いますrunQueryJS()はjavascript関数を呼び出します検索のためのAjax呼び出し。

関連する問題