如果添加到页面的CGridView ('myGridViewID')通过ajax,我不能重新加载它。
美元.fn.yiiGridView.update (myGridViewID);
TypeError: settings is undefined
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);
这是同一视图中动态CgridViews的wiki。应该可以了
动态加载CGridViews(以及包含ajax的所有内容)的问题是CController::renderPartial()不呈现所需的javascript代码以使其正常工作,不像CController::render(),它包括所需的布局和JS。
有一个名为ZController的扩展,它为这个问题提供了一个解决方案,但由于CGridviews被重新加载的方式(通过对相同的URL进行ajax调用)…当你尝试过滤/排序/页面通过AJAX加载的CGridView,随后的AJAX调用将取代你的浏览器窗口的整个内容,但我诚实地认为,也许 (只有可能)这个解决方案可以帮助,但我还没有时间去尝试。
这就是为什么我目前避免使用AJAX加载CGridViews 。