删除事件触发Yii的CGridView中的某些内容

时间:2013-07-26 12:05:41

标签: yii cgridview

我在控制器中合并了创建和管理视图和方法, 所以在admin.php我有以下几行:

echo $this->renderPartial('_form',  array('model'=>$create));
echo $this->renderPartial('_admin',  array('model'=>$search));

并在_form中编辑提交按钮

echo CHtml::ajaxSubmitButton('Submit', Yii::app()->createUrl('money/income'), array('update' => '#money-grid'));

并在money控制器中,income方法实现create方法并将CGridView作为ajax响应发送。

if ($createModel->save()) {
                $this->renderPartial('_admin', array('model' => $searchModel), false, true);

如果数据保存到数据库中,它会呈现包含_admin的{​​{1}}视图,这样可以完成,但是如果客户端创建了一些内容并插入到数据库中,则存在问题,所以在点击{{1它将触发多个CGridView,它会产生问题, 例如,如果用户插入 n 行,然后点击要删除的每一行,它将触发 n + 1 次。(但它应该是1)

问题出在哪里?是Yii吗?

1 个答案:

答案 0 :(得分:0)

通过jQuery更新CGridView而不是渲染它来解决问题,所以我将ajaxSubmitButton更改为

echo CHtml::ajaxSubmitButton('Submit', Yii::app()->createUrl('money/income'), array('success'=>'$.fn.yiiGridView.update("money-grid")'));

它解决了问题。

'success'=>'$.fn.yiiGridView.update("money-grid")'