#gridview #filter #yii2 #jquery-ui-sortable
#gridview #Фильтр #yii2 #jquery-ui-сортируемый
Вопрос:
У меня есть Yii2 GridView с реализованной опцией сортировки (я использовал расширение kotchuprik), которое добавляет один столбец с возможностью перетаскивания. Проблема в том, что мне нужно иметь возможность сортировать строки, когда установлен какой-либо идентификатор фильтра GridView. В GridView есть столбец «Идентификатор машины», и сортировку нужно выполнять только со строками с одинаковым «Идентификатором машины», так как отобразить столбец с возможностью перетаскивания только тогда, когда какой-либо идентификатор машины задан фильтром столбца??
Ответ №1:
Вы могли бы использовать свойство visible столбца
Yii grid DataColumn имеет свойство visible . Этот атрибут принимает логические значения, но вы можете динамически использовать выражение, которое имеет логическое значение. например:
use Yii;
...
'columns' => [
['class' => 'yiigridSerialColumn'],
//'tipo',
['attribute' => 'your_attribute',
'label' => 'Your Label',
'visible' => isThisColumnVisible(),
],
http://www.yiiframework.com/doc-2.0/yii-grid-column.html #$видимый-деталь
Вы можете проверить $SearchModel->your_attribute или эквивалентную функцию, которая возвращает логическое значение
'columns' => [
['class' => 'yiigridSerialColumn'],
//'tipo',
['attribute' => 'your_attribute',
'label' => 'Your Label',
'visible' => isset($searchModel->your_attribute) ,
],
Комментарии:
1. Спасибо, но как проверить, активен ли фильтр (что-то было выбрано из выпадающего фильтра)?
2. что вы имеете в виду под «если фильтр активен»?
3. Активный означает, что что-то было выбрано из фильтра выпадающего списка (и данные были обновлены, включая этот фильтр)