PJAX之后,YII2可编辑列不起作用
gridview中的一个列,集成了EditableColumn,它在每次页面加载时都能正常工作,但在执行任何PJAX调用(如搜索、分页更改等)后都不能正常工作 在视图中,EditableColumn代码如下所示:PJAX之后,YII2可编辑列不起作用,yii2,pjax,Yii2,Pjax,gridview中的一个列,集成了EditableColumn,它在每次页面加载时都能正常工作,但在执行任何PJAX调用(如搜索、分页更改等)后都不能正常工作 在视图中,EditableColumn代码如下所示: [ 'class' => EditableColumn::class, 'attribute' => 'visit_status', 'url' => ['update'], 'type' => 'select', 'ed
[
'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,也可以发布控制器操作中的代码。在此处添加可编辑列代码无助于纠正问题。请添加完整视图,并且您的控制器操作代码最好知道gridview是否为您自己的gridview、kartik gridview或其他类似内容。如果能看到整个小部件的设置,而不仅仅是一列,也会很好。我假设这是kartik的GridView,在这种情况下,您是否有小部件选项“pjax:true”,因为默认值是“false”。