重新加载动态添加的CGridView



如果添加到页面的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

最新更新