この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

apex:actionFunction

AJAX 要求を使用したコントローラの action メソッドを JavaScript コードから直接呼び出すことをサポートするコンポーネントです。<apex:actionFunction> コンポーネントは <apex:form> コンポーネントの子である必要があります。コール元と <apex:actionFunction> の間のバインドはパラメータの順序に基づいて行われるため、<apex:param> の順序がコール元の引数リストと一致していることを確認してください。

コントローラの action メソッドの他の Visualforce コンポーネントからの呼び出しのみをサポートする <apex:actionSupport> とは異なり、<apex:actionFunction> では JavaScript コードのブロック内からコールできる新しい JavaScript 関数を定義します。

注意: API バージョン 23 以降、<apex:pageBlockTable><apex:repeat> などの反復コンポーネント内に <apex:actionFunction> を配置できなくなりました。<apex:actionFunction> は反復コンポーネントの後に配置し、反復内には、それをコールする通常の JavaScript 関数を置きます。

1<!-- Page: -->
2<apex:page controller="exampleCon">
3    <apex:form>
4        <!-- Define the JavaScript function sayHello-->
5        <apex:actionFunction name="sayHello" action="{!sayHello}" rerender="out" status="myStatus"/>
6    </apex:form>
7
8    <apex:outputPanel id="out">
9    <apex:outputText value="Hello "/>
10    <apex:actionStatus startText="requesting..." id="myStatus">
11        <apex:facet name="stop">{!username}</apex:facet>
12    </apex:actionStatus>
13    </apex:outputPanel>
14            
15    <!-- Call the sayHello JavaScript function using a script element-->
16    <script>window.setTimeout(sayHello,2000)</script>
17            
18    <p><apex:outputText value="Clicked? {!state}" id="showstate" /></p> 
19            
20    <!-- Add the onclick event listener to a panel. When clicked, the panel triggers
21    the methodOneInJavascript actionFunction with a param -->
22    <apex:outputPanel onclick="methodOneInJavascript('Yes!')" styleClass="btn"> 
23        Click Me 
24    </apex:outputPanel>
25    <apex:form>
26
27    <apex:actionFunction action="{!methodOne}" name="methodOneInJavascript" rerender="showstate">
28        <apex:param name="firstParam" assignTo="{!state}" value="" />
29    </apex:actionFunction>
30    </apex:form>
31</apex:page>
32
33/*** Controller ***/
34public class exampleCon {
35    String uname;
36
37    public String getUsername() {
38        return uname;
39    }
40            
41    public PageReference sayHello() {
42        uname = UserInfo.getName();
43        return null;
44    }
45            
46    public void setState(String n) {
47        state = n;
48    }
49            
50    public String getState() {
51        return state;
52    }
53            
54    public PageReference methodOne() {
55        return null;
56    }
57            
58    private String state = 'no';
59}

属性

属性名 属性型 説明 必須かどうか API バージョン 通用範囲
action ApexPages.Action ページマークアップの他の場所で DOM イベントによって actionFunction がコールされるときに呼び出される action メソッド。このメソッドを参照するには、差し込み項目の構文を使用します。たとえば、action="{!save}" ではコントローラの save メソッドを参照します。アクションが指定されていない場合、ページは単に更新されます。 12.0 グローバル
focus String AJAX 要求の完了後にフォーカスされるコンポーネントの ID。 12.0 グローバル
id String ページの他のコンポーネントが actionFunction コンポーネントを参照できるようにする識別子。 12.0 グローバル
immediate Boolean ページの項目に関連付けられている入力規則を処理することなく、このコンポーネントに関連付けられているアクションをすぐに実行するかどうかを指定する boolean 値。true に設定すると、アクションがすぐに実行され、入力規則はスキップされます。指定されていない場合、この値はデフォルトの false に設定されます。 12.0 グローバル
name String ページマークアップの他の場所で呼び出された場合の JavaScript 関数の名前。action 属性で指定されているメソッドを実行します。action メソッドが完了すると、reRender 属性で指定されるコンポーネントが更新されます。 はい 12.0 グローバル
namespace String 生成された JavaScript 関数のために使用される名前空間。namespace 属性は、単純な string 型で、文字で始まり、文字、数値、またはアンダースコア (_) 文字のみで構成される必要があります。たとえば、「MyOrg」および「Your_App_Name_v2」は、名前空間としてサポートされます。この属性が設定されていない場合、名前空間は <apex:actionFunction> によって生成された JavaScript 関数に追加されず、既存の動作のままになります。 12.0 グローバル
onbeforedomupdate String onbeforedomupdate イベントの発生時 (AJAX 要求が処理されたとき、ただし、ブラウザの DOM が更新される前) に呼び出される JavaScript。 12.0 グローバル
oncomplete String AJAX 更新要求の結果��クライアントで完了したときに呼び出される JavaScript。 12.0 グローバル
rendered Boolean コンポーネントをページに表示するかどうかを指定する boolean 値。指定されていない場合、この値はデフォルトの true に設定されます。 12.0 グローバル
reRender Object action メソッドの結果がクライアントに返されるときに再作成される 1 つ以上のコンポーネントの ID。この値には、単一の ID、ID のカンマ区切りのリスト、または ID のリストまたはコレクションの差し込み項目の式を使用できます。 12.0 グローバル
status String AJAX 更新要求の状況を表示する関連付けられているコンポーネントの ID。「actionStatus コンポーネント」を参照してください。 12.0 グローバル
timeout Integer AJAX 更新要求がタイムアウトするまでの時間 (ミリ秒)。 12.0 グローバル