在CJuiDialog中呈现的Yii CGridView不会被过滤或排序

时间:2014-05-13 15:39:59

标签: ajax yii cgridview cjuidialog

我在CJuiDialog中渲染一个CGridView,并且工作正常。

我的问题是,每次单击列标题对记录进行排序时,页面都会更改(url是使用renderPartial通过ajax呈现的视图的url),请求不是ajax(Yii::app()->request->isAjaxRequest控制器是假的。)

此外,如果我过滤任何字段,则不会发生任何事情。

如何让用户对CGridView进行排序或过滤?

OR: 还有另一种让用户通过CGridView选择外键字段的方法吗?

2 个答案:

答案 0 :(得分:0)

这个问题可能正在发生,因为javascript错误或代码上的click函数被覆盖(并且没有返回false)。你能展示你的代码吗?

答案 1 :(得分:0)

我终于找到了解决方案。

调用renderPartial时,必须设置第3个参数= FALSE,第4个参数= TRUE。

$this->renderPartial('ajax_view',array(
            'model'=>$model,
            'dataProvider'=>$dataProvider,
            ),false,TRUE);

来自官方文件:

$ return boolean 是否应返回呈现结果而不是向最终用户显示 $ processOutput boolean 是否应使用processOutput对渲染结果进行后处理。

最重要的TWEAK: 在使用renderPartial渲染的视图中,您必须添加:

Yii::app()->clientscript->scriptMap['jquery.js'] = false;

简单地重新加载页面'因为多次加载了jquery。