如果通過ajax附加到頁面的CGridView('myGridViewID'),我無法重新加載它。
$ .fn.yiiGridView.update('myGridViewID');Yii - 重新加載動態添加CGridView
TypeError: settings is undefined
$grid.addClass(settings.loadingClass);
如果通過ajax附加到頁面的CGridView('myGridViewID'),我無法重新加載它。
$ .fn.yiiGridView.update('myGridViewID');Yii - 重新加載動態添加CGridView
TypeError: settings is undefined
$grid.addClass(settings.loadingClass);
`
// in controller action:
$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);
`
與動態加載CGridViews(以及含有AJAX的一切)的問題是,CController ::的RenderPartial()不渲染所需的JavaScript代碼爲他們正常工作,不像CController :: render()方法,其中包括所需的佈局和JS。
有an extension called ZController它提供了一個解決這個問題的方法,但由於CGridviews的重載方式(通過對同一個URL進行ajax調用)......當你嘗試過濾/排序/頁面加載的CGridView AJAX,隨後的Ajax調用將取代您的瀏覽器窗口的全部內容,但我老老實實地認爲也許(也許只有)this workaround可以幫助,但我沒有時間去嘗試。
這就是爲什麼我目前避免使用AJAX加載CGridViews。
下面是在同一視圖中動態CgridViews的維基。這應該工作。