我在CJuiDialog中渲染一个CGridView,并且工作正常。
我的问题是,每次单击列标题对记录进行排序时,页面都会更改(url是使用renderPartial通过ajax呈现的视图的url),请求不是ajax(Yii::app()->request->isAjaxRequest
控制器是假的。)
此外,如果我过滤任何字段,则不会发生任何事情。
如何让用户对CGridView进行排序或过滤?
OR: 还有另一种让用户通过CGridView选择外键字段的方法吗?
答案 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。