gridview中具有集成EditableColumn的列,该列在每次加载页面时都可以正常工作,但在执行任何PJAX调用(如搜索,分页更改等)后无法正常工作。
在View中EditableColumn代码如下:
[
'class' => EditableColumn::class,
'attribute' => 'visit_status',
'url' => ['update'],
'type' => 'select',
'editableOptions' => function ($model) {
return [
'source' => [
'PENDING' => 'PENDING',
'APPROVED' => 'APPROVED',
'REJECTED' => 'REJECTED'
],
'value' => $model->visit_status,
'editable' => true
];
},
],
控制器动作如下:
public function actionUpdate()
{
$pk = unserialize(base64_decode(Yii::$app->request->post('pk')));
$model = MyModel::findOne($pk);
if ($model) {
$model->visit_status = Yii::$app->request->post('value');
if ($model->validate(['visit_status'])) {
$model->save(false);
} else {
throw new BadRequestHttpException($model->getFirstError('visit_status'));
}
}
}
如果禁用了PJAX,那么它可以正常工作,但不能为此破坏PJAX