2013-03-26 139 views
0

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

TypeError: settings is undefined

$grid.addClass(settings.loadingClass);

回答

1
  1. 使用的RenderPartial:

`

// 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); 

`

-2

与动态加载CGridViews(以及含有AJAX的一切)的问题是,CController ::的RenderPartial()不渲染所需的JavaScript代码为他们正常工作,不像CController :: render()方法,其中包括所需的布局和JS。

an extension called ZController它提供了一个解决这个问题的方法,但由于CGridviews的重载方式(通过对同一个URL进行ajax调用)......当你尝试过滤/排序/页面加载的CGridView AJAX,随后的Ajax调用将取代您的浏览器窗口的全部内容,但我老老实实地认为也许也许只有this workaround可以帮助,但我没有时间去尝试。

这就是为什么我目前避免使用AJAX加载CGridViews。

0

下面是在同一视图中动态CgridViews的维基。这应该工作。