Yii - 重新加载动态添加的CGridView

时间:2013-03-26 14:52:04

标签: yii cgridview

如果通过ajax追加到CGridView('myGridViewID')的页面,我无法重新加载它。
$ .fn.yiiGridView.update( 'myGridViewID');

  

TypeError:设置未定义

     

$ grid.addClass(s​​ettings.loadingClass);

3 个答案:

答案 0 :(得分:1)

在控制器操作中使用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);

答案 1 :(得分:0)

以下是同一视图中动态CgridViews的wiki。这应该有用。

答案 2 :(得分:-2)

动态加载的CGridViews(以及包含ajax的所有内容)的问题在于CController :: renderPartial()不会呈现所需的javascript代码以使它们正常工作,这与CController :: render()不同,后者包含所需的布局和JS。

an extension called ZController提供了解决此问题的方法,但是由于CGridviews的重新加载方式(通过对同一个URL进行ajax调用)...当您尝试过滤/排序/分页时通过AJAX加载CGridView,后续的Ajax调用将取代浏览器窗口的全部内容,但老实说,我认为可能只有this workaround可以帮助,但我还没来得及尝试。

这就是我目前避免使用AJAX 加载CGridViews的原因。