0

コントローラーで作成ビューと管理ビューとメソッドをマージするため、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);

データがデータベースに保存されている場合、これは正常に機能しますが、問題が存在します。クライアントが何かを作成してデータベースに挿入すると、CGridViewをクリックした後に_admin複数のトリガーが発生し、問題が発生します。ユーザーがn行を挿入し、各行をクリックして削除すると、n + 1回トリガーされます(ただし、1である必要があります)CGridViewdelete

どこに問題がありますか?それは Yii の問題ですか?

4

1 に答える 1

0

CGridViewをレンダリングする代わりにjQueryで更新することで問題が解決したので、 ajaxSubmitButton を

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

そしてそれは問題を解決しました。

'success'=>'$.fn.yiiGridView.update("money-grid")'
于 2013-07-26T13:24:25.803 に答える