2013-09-26 4 views
1

Я рассматриваю настройку yii cgridview. Я хочу, чтобы пользователи могли выбирать, какие столбцы они хотят видеть. В настоящее время я выбираю точные столбцы, которые будут отображаться.Динамические колонки Yii Cgridview

Я искал информацию об этом, но, похоже, не очень далеко, возможно, я не ищу правильные термины или их конкретный термин для этого. В идеале пользователи могут нажать кнопку и пометить поля, которые будут видны. Я видел это реализовано на x2crm

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

Я также как и способность двигаться колонны вокруг т.е. прибегают порядок столбцов и возможность изменять размер столбцов, когда больше добавлено. Я понимаю, что кто-то не собирается приходить и делать это для меня, но, конечно, если кто-то может предоставить мне любую информацию или подобные запросы, мы будем очень благодарны.

ответ

3

После долгого изнурительного поиска я нашел то, что может быть решением обоих моих запросов. Существует расширение для Yii, которое позволяет вам выбирать столбцы, которые вы хотите отобразить, с помощью простого выбора галочки, а также для переупорядочения столбцов.

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

указанная выше ссылка приведет вас на демонстрационной странице для расширения и ссылка ниже ссылка на страницу расширения загрузки.

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

Это, безусловно, самый простой способ реализации этой функции на вашем веб-приложение.

1

Начните с чтением документации для CGridView,

Конструктора он принимает в указании массива столбцов для отображения (и разрешить ли сортировать на них, и т.д.), так что позволяет пользователям выбирать, какие столбцы они хотят см. почти тривиально:

Показать форму с флажками, значениями которых являются имена столбцов. Когда пользователь отправляет форму, перебирает флажки и добавляет каждое из этих полей в массив, который передается в CGridView.

Это немного сложнее, если вы хотите иметь конкретные настройки для столбца (т. Е. Конкретного заголовка столбца или форматирования), однако не слишком много - в этом случае вы просто определяете массив, содержащий настройки для него, и добавьте этот массив в общий массив, который вы отправляете в CGridView.

Разрешение перетаскивания столбцов - это гораздо более сложное предприятие, и на самом деле это не может быть возможным без специальной реализации - это потому, что CGridView по своей сути является просто таблицей, то есть вы можете легко перетаскивать строки (так как они целые элементы), но перетаскивание падающей строки на самом деле перетаскивает много отдельных ячеек. Тем не менее, есть примеры jQuery, которые могут помочь вам начать - и это не будет большой проблемой для реализации CGridView, который использует divs вместо таблицы, и использует ячейки внутри столбцов, а не ячейки внутри строк.

Я надеюсь, что это поможет.