Visualforce 页面中的 <apex: actionFunction> 组件

17 Mar 2025 | 4 分钟阅读

<apex:actionFunction> 组件是用于通过 AJAX 请求直接从 JavaScript 代码调用控制器操作方法的最常用组件之一。

此组件应始终是 <apex:form> 的子组件,因为调用者和 <apex:actionFunction> 组件之间的绑定是基于参数顺序完成的。 我们必须确保 <apex:param> 的顺序与调用者的参数列表匹配。

<apex:actionFunction><apex:actionSupport> 不同。 <apex:actionSupport> 从其他 VF 组件调用控制器操作方法。 但是,<apex:actionFunction> 定义了一个新的 JavaScript 函数,可以从 JS 代码块中调用。

<apex:actionFunction> 组件具有以下属性

1. action

action 属性是字符串类型,它定义了当页面标记中其他位置的 DOM 事件调用 <apex:actionFunction> 时调用的操作方法。

语法

2. focus

focus 属性是字符串类型,它定义了 AJAX 请求完成后处于焦点状态的组件的 ID。

语法

3. id

id 属性是字符串类型,它是一个唯一的标识符,允许页面上的其他组件引用 <apex:actionFunction> 组件。

语法

4. immediate

立即 属性的类型为布尔值。如果其值为 true,则与该组件关联的操作将立即发生。该函数不会处理与页面上的字段关联的验证规则。

语法

5. name

name 属性是字符串类型,用于定义 JavaScript 函数的名称。

语法

6. namespace

namespace 属性是字符串类型,用于定义命名空间,即用于生成的 JavaScript 函数。

语法

7. timeout

timeout 属性是 Integer 类型,它定义了 AJAX 更新请求应超时的时长。

语法

8. status

status 属性是字符串类型,它定义了关联组件的 ID,该组件显示 AJAX 更新请求的状态。

语法

9. reRender

reRender 属性是 Object 类型,它是我们需要在客户端收到操作方法结果时重新绘制的一个或多个组件的 ID。

其值可以是单个 ID、逗号分隔的 ID 或 ID 的集合。

语法

10. rendered

布尔属性用于指定是否在页面上呈现该组件。 默认情况下,其值设置为 true。

语法

11. oncomplete

字符串类型属性,用于定义当 AJAX 更新请求的结果在客户端上完成时调用的 JavaScript 方法。

语法

12. onbeforedomupdate

另一个字符串类型属性,用于定义发生 onbeforedomupdate 事件时调用的 JavaScript 方法。

语法

让我们看一个例子来了解如何在代码中使用 apex actionFunction

ApexActionFunctionExample.vfp

ApexActionFunctionController.apxc

输出

apex:actionFunction component in Visualforce Page