1

我正在考虑定制 yii cgridview。我希望能够允许用户选择他们希望看到的列。目前我正在选择将显示的确切列。

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

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

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

4

2 回答 2

3

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

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

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

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

这是迄今为止在您的 Web 应用程序上实现此功能的最简单方法。

于 2013-10-31T08:18:29.303 回答
1

首先阅读 CGridView 的文档,

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

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

如果您想对列进行特定设置(即特定列标题或格式)但不要太多,这会稍微复杂一些 - 在这种情况下,您只需定义一个包含其设置的数组,并将该数组添加到您提交给 CGridView 的总数组。

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

我希望这会有所帮助。

于 2013-09-26T08:43:48.217 回答