ajaxによってCGridView('myGridViewID')のページに追加すると、リロードできません。
$ .fn.yiiGridView.update('myGridViewID');
TypeError:設定は未定義です
$ grid.addClass(settings.loadingClass);
コントローラアクションでrenderPartialを使用します。
$cs = Yii::app()->clientScript;
$cs->reset();
$cs->scriptMap = array(
'jquery.js' => false, // prevent produce jquery.js in additional javascript data
);
// Look at 4th parameter: with TRUE value, your view will have additional javascript data.
$this->renderPartial('_partialViewWithGrid', array(), false, true);
これは、同じビューの動的CgridViewのwikiです。それはうまくいくはずです。
動的にロードされたCGridView(およびajaxを含むすべて)の問題は、必要なレイアウトとJSを含むCController :: render()とは異なり、CController :: renderPartial()が必要なjavascriptコードを正しく機能させないことです。
この問題の回避策を提供するZControllerと呼ばれる拡張機能がありますが、CGridviewsが再ロードされる方法(同じURLへのajax呼び出しを行うことによる)のために...AJAXを介してロードされたCGridViewをフィルター/ソート/ページングしようとすると、後続のAjax呼び出しは、ブラウザーウィンドウのコンテンツ全体を置き換えますが、正直なところ、この回避策が役立つと思いますが(たぶん)、試してみる時間がありませんでした。
そのため、現在、AJAXを使用してCGridViewをロードすることは避けています。