Class yii\widgets\Pjax

继承yii\widgets\Pjax » yii\base\Widget » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable, yii\base\ViewContextInterface
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/widgets/Pjax.php

Pjax 是一个集成了 pjax jQuery 插件的小部件.

Pjax 仅处理其 begin()end() 调用之间包含的内容. 称为小部件的主体内容(body content). 默认情况下,主体内容(body content)中的任何链接单击或表单提交(对于具有data-pjax属性的表单)都将触发 AJAX 请求. 为了响应 AJAX 请求时, Pjax 将发送更新后的主体内容(基于AJAX请求)到客户端, 客户端将使用新内容替换旧内容. 然后使用 pushState 更新浏览器的 URL. 整个过程不需要重新加载布局或资源(js, css).

你可以配置 $linkSelector 指定哪些链接应触发 Pjax, 并配置 $formSelector 指定哪个表单提交可以触发 Pjax.

你可以通过在容器的特定链接中添加data-pjax="0"属性来禁用 Pjax.

以下示例显示如何将 Pjax 与 yii\grid\GridView 小部件一起使用, 以便可以通过 Pjax 完成网格分页, 排序和过滤:

use yii\widgets\Pjax;

Pjax::begin();
echo GridView::widget([...]);
Pjax::end();

公共属性

隐藏继承的属性

属性类型描述定义在
$autoIdPrefix string 自动生成的小部件 ID 的前缀. yii\widgets\Pjax
$behaviors yii\base\Behavior[] 附加到此组件的行为列表. 该属性是只读的. yii\base\Component
$clientOptions array 传递给 Pjax JS 插件的其它选项. yii\widgets\Pjax
$counter integer 用于为小部件生成 $id 的计数器. yii\widgets\Pjax
$enablePushState boolean 是否启用推送状态. yii\widgets\Pjax
$enableReplaceState boolean 是否启用替换状态. yii\widgets\Pjax
$formSelector string|false 表单的 jQuery 选择器, 其提交应触发 Pjax 请求. yii\widgets\Pjax
$id string|null 小部件的 ID. Note: 此属性的类型在 getter 和 setter 中不同. 有关详细信息, 请参阅 getId()setId(). yii\base\Widget
$linkSelector string|false 应该触发 Pjax 请求的链接的 jQuery 选择器. yii\widgets\Pjax
$options array 小部件容器标签的 HTML 属性. yii\widgets\Pjax
$scrollTo boolean|integer 当收到 Pjax 响应时应如何滚动页面. yii\widgets\Pjax
$stack yii\base\Widget[] 当前正在渲染的小部件(未结束). yii\base\Widget
$submitEvent string 将触发表单处理程序的 jQuery 事件. yii\widgets\Pjax
$timeout integer Pjax 超时设置(以毫秒为单位). yii\widgets\Pjax
$view yii\web\View 可用于渲染视图或视图文件的视图对象. Note: 此属性的类型在 getter 和 setter 中不同. 有关详细信息, 请参阅 getView()setView(). yii\base\Widget
$viewPath string 包含此小部件的视图文件的目录. 该属性是只读的. yii\base\Widget

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的指定的方法. yii\base\Component
__clone() 在通过克隆现有对象创建对象之后调用此方法. yii\base\Component
__construct() 构造函数. yii\base\BaseObject
__get() 返回组件属性的值. yii\base\Component
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\Component
__set() 设置组件属性的值. yii\base\Component
__unset() 将组件属性设置为null. yii\base\Component
afterRun() 在执行小部件后立即调用该方法. yii\base\Widget
attachBehavior() 将行为附加到此组件. yii\base\Component
attachBehaviors() 将行为列表附加到组件. yii\base\Component
beforeRun() 在执行小部件之前立即调用该方法. yii\base\Widget
begin() 开始一个小部件. yii\base\Widget
behaviors() 返回此组件应该具有的行为列表. yii\base\Component
canGetProperty() 返回一个值, 指示属性是否可读取. yii\base\Component
canSetProperty() 返回一个值, 指示属性是否可设置. yii\base\Component
className() 返回此类的完全限定名称. yii\base\BaseObject
detachBehavior() 从组件中分离一个行为. yii\base\Component
detachBehaviors() 分离组件中的所有行为. yii\base\Component
end() 结束小部件. yii\base\Widget
ensureBehaviors() 确保在 behaviors() 中声明的行为已附加到此组件. yii\base\Component
getBehavior() 返回指定的行为对象. yii\base\Component
getBehaviors() 返回附加到此组件的所有行为. yii\base\Component
getId() 返回小部件的 ID. yii\base\Widget
getView() 返回可用于渲染视图或视图文件的视图对象. yii\base\Widget
getViewPath() 返回包含此小部件的视图文件的目录. yii\base\Widget
hasEventHandlers() 返回一个值, 指示是否有任何处理程序附加到指定的事件. yii\base\Component
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\Component
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\Component
init() 初始化该对象. yii\widgets\Pjax
off() 从该组件分离现有的事件处理程序. yii\base\Component
on() 将事件处理程序附加到事件. yii\base\Component
registerClientScript() 注册所需的 JavaScript. yii\widgets\Pjax
render() 渲染视图. yii\base\Widget
renderFile() 渲染视图文件. yii\base\Widget
run() 执行小部件. yii\widgets\Pjax
setId() 设置小部件的 ID. yii\base\Widget
setView() 设置此小部件要使用的视图对象. yii\base\Widget
trigger() 触发事件. yii\base\Component
widget() 创建一个小部件实例并运行它. yii\base\Widget

受保护的方法

隐藏继承的方法

方法描述定义在
requiresPjax() yii\widgets\Pjax

事件

隐藏继承的事件

事件类型描述定义在
EVENT_AFTER_RUN yii\base\WidgetEvent 在执行小部件之后立即触发的事件. (available since version 2.0.11) yii\base\Widget
EVENT_BEFORE_RUN yii\base\WidgetEvent 在执行小部件之前触发的事件. (available since version 2.0.11) yii\base\Widget
EVENT_INIT yii\base\Event 当通过 init() 初始化小部件时触发的事件. (available since version 2.0.11) yii\base\Widget

属性详情

$autoIdPrefix public static 属性

自动生成的小部件 ID 的前缀.

public static string $autoIdPrefix 'p'
$clientOptions public 属性

传递给 Pjax JS 插件的其它选项. 请参阅 pjax project page 了解可用选项.

public array $clientOptions null
$counter public static 属性

用于为小部件生成 $id 的计数器.

public static integer $counter 0
$enablePushState public 属性

是否启用推送状态.

public boolean $enablePushState true
$enableReplaceState public 属性

是否启用替换状态.

$formSelector public 属性

表单的 jQuery 选择器, 其提交应触发 Pjax 请求.

如果未设置, 则所有包含在 Pjax 内容中的具有data-pjax属性的表单都将触发 Pjax 请求.

如果设置为false, 则不会注册任何代码来处理表单.

Note: 如果对 Pjax 请求的响应是整页, 则将再次发送普通请求.

public string|false $formSelector null
$linkSelector public 属性

应该触发 Pjax 请求的链接的 jQuery 选择器.

如果未设置, 则 Pjax 包含的内容中的所有链接都将触发 Pjax 请求.

如果设置为false, 则不会注册任何代码来处理链接.

Note: 如果对 Pjax 请求的响应是整页, 则将再次发送普通请求..

public string|false $linkSelector null
$options public 属性

小部件容器标签的 HTML 属性. 可以识别以下特殊选项:

  • tag: string, 容器的标签名称. 默认为div. 该选项自版本 2.0.7 起可用. 请参阅 yii\helpers\Html::tag().

参见 yii\helpers\Html::renderTagAttributes() 有关如何渲染属性的详细信息.

public array $options = []
$scrollTo public 属性

当收到 Pjax 响应时应如何滚动页面. 如果为false, 则不会进行页面滚动. 如果你想滚动到某个特定位置, 请使用数字.

public boolean|integer $scrollTo false
$submitEvent public 属性 (可用自版本: 2.0.9)

将触发表单处理程序的 jQuery 事件. 默认为submit.

public string $submitEvent 'submit'
$timeout public 属性

Pjax 超时设置(以毫秒为单位). 发出 AJAX 请求时使用此参数. 如果你的服务器速度较慢, 请使用更大的数字. 如果服务器在超时内没有响应, 则会触发整页加载.

public integer $timeout 1000

方法详情

init() public 方法

初始化该对象.

在构造函数的末尾调用此方法. 默认实现将触发 EVENT_INIT 事件.

public void init ( )
registerClientScript() public 方法

注册所需的 JavaScript.

public void registerClientScript ( )
requiresPjax() protected 方法

protected boolean requiresPjax ( )
return boolean

当前请求是否需要此小部件的 Pjax 响应.

run() public 方法

执行小部件.

public string run ( )
return string

输出小部件执行的结果.