2016-06-23 2 views
1

Мне нужна помощь с виджетами Yii2 GridView. Проблема: Если вы щелкните по имени несортированного столбца, оно будет сортироваться по умолчанию от min до max (например, SORT_ASC const в defaultOrder). Что я должен изменить для обратного порядка сортировки по клику, он должен быть от max до min (например, SORT_DESC).Yii2 Виджет GridView, необходимо отменить порядок сортировки по-умолчанию

Нет проблем, чтобы выбрать загрузку по умолчанию по умолчанию, мне нужно изменить его порядок onclick. Сортировать варианты DataProvider являются:

  'sort' => [ 
      'attributes' => ['weekly_length','name', 'market','unique','sessions','retentions', 'session_length_summary',], 
      'defaultOrder' => ['weekly_length' => SORT_DESC], 
      ], 
+0

, если нажать снова будет сортировать его DESC и если нажать снова, то ASC. –

+0

Спасибо, капитан! – Teo

+0

Ther - большой стол, и это может занять много времени, чтобы сортировать дважды. Я пытаюсь сэкономить время пользователя/ – Teo

ответ

2

Просто реверсировать порядок сортировки, как: -

'sort' => [ 
      'attributes' => [ 
       'weekly_length' => [ 
        'asc' => ['weekly_length' => SORT_DESC,], 
        'desc' => ['weekly_length' => SORT_ASC], 
       ] 
      ] 
     ] 
+0

Хорошая идея, но не идеальная. Работает корыстно, но стрелка, показывающая порядок сортировки, отменяется) В любом случае спасибо. Я подожду пару часов, если не предложит лучшего решения - возьмите свой. – Teo

+0

Используйте свою идею. Еще раз спасибо/ – Teo

1

Вы можете использовать, как показано ниже:

$dataProvider->setSort([ 
      'attributes' => [ 
        'weekly_length' => [ 
         'asc' => ['weekly_length' => SORT_DESC], 
         'desc' => ['weekly_length' => SORT_ASC], 

        'defaultOrder' => ['weekly_length' => SORT_DESC] 
       ], 
      ] 
     ]); 
+0

Это почти то же самое, что и первый ответ, но вы можете изменить его без поиска объявления datProvider. Минус - он переписывает существующие предпочтения сортировки, поэтому будьте осторожны. – Teo

Смежные вопросы