Yii Cgridview动态列

时间:2013-09-26 08:18:15

标签: php yii cgridview

我正在寻找自定义yii cgridview。我希望能够允许用户选择他们希望看到的列。目前,我正在选择将要显示的确切列。

我已经看过这方面的信息,但似乎没有走得太远,也许我不是在寻找正确的术语,或者它们是一个特定的术语。理想情况下,用户可以单击按钮并勾选将要看到的框。我已经看到这在x2crm

上实现了

http://demo.x2engine.com/index.php/accounts/index

我也喜欢移动列的功能,即采用列的顺序,以及在添加更多列时调整列大小的功能。我知道有人不会来为我做这件事,但当然如果有人可以向我提供任何信息或类似的要求,我将不胜感激。

2 个答案:

答案 0 :(得分:3)

经过长时间的艰苦搜索,我发现了一些事实上可能是我的两个请求的解决方案。存在Yii的扩展,允许您通过简单的复选框选择来选择要显示的列,以及允许重新排序列。

http://ecolumns.demopage.ru/index.php

上面的链接将您带到扩展程序的演示页面,下面的链接是扩展程序下载页面的链接。

http://www.yiiframework.com/extension/ecolumns/

这是目前在您的网络应用中实现此功能的最简单方法。

答案 1 :(得分:1)

首先阅读CGridView的文档,

它的构造函数接受一个数组,指定要显示的列(以及是否允许对它们进行排序等),以便允许用户选择他们想要查看的列几乎是微不足道的:

显示带有复选框的表单,复选框的值是列的名称。当用户提交表单时,循环选中复选框并将每个当前字段添加到传递给CGridView的数组中。

如果你想对列进行特定的设置(即特定的列标题或格式化),这有点复杂,但不要太多 - 在这种情况下,你只需定义一个包含它的设置的数组,然后添加该数组到您提交给CGridView的总数组。

允许拖放列是一个更具挑战性的企业,如果没有自定义实现,实际上可能无法实现 - 这是因为CGridView本质上只是一个表,即您可以轻松地拖放行(因为它们是完整的)项目),但拖延一行实际上拖放了很多单独的单元格。但是,有一些jQuery示例可以帮助您入门 - 实现使用div而不是表的CGridView并使用列内的单元格而不是行内的单元格不是一个大问题。

我希望有所帮助。