Несколько GridView на странице
- chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Несколько GridView на странице
Ни у кого не было проблем с размещением 2-х GridView на одной странице?
Суть в следующем. У меня есть одна модель, у не есть связь, где по условию через ActiveQuery делается выборка из одной таблицы 2-х наборов данных. Для одного DataProvider одно условие, для другого - другое условие. Эти 2 DataProvider'а используются в 2-х GridView на странице.
Так вот, настройкам провайдеров для сортировки и пагинации выставлены разные параметры (sortParam, pageParam). Но тем не менее, когда щелкаю сортировать или изменить страницу, то изменяются оба GridView, Хотя в адресной строке видны разные параметры для сортировки и пагинации.
Профайлер запросов БД показывает, что в запросах для первого и второго провайдера отсутствует разбиение на страницы. Если какой-либо GridView закомментировать, то оставшийся работает как надо. Да, и используемая БД MsSQL.
Подскажите куда копать?
Суть в следующем. У меня есть одна модель, у не есть связь, где по условию через ActiveQuery делается выборка из одной таблицы 2-х наборов данных. Для одного DataProvider одно условие, для другого - другое условие. Эти 2 DataProvider'а используются в 2-х GridView на странице.
Так вот, настройкам провайдеров для сортировки и пагинации выставлены разные параметры (sortParam, pageParam). Но тем не менее, когда щелкаю сортировать или изменить страницу, то изменяются оба GridView, Хотя в адресной строке видны разные параметры для сортировки и пагинации.
Профайлер запросов БД показывает, что в запросах для первого и второго провайдера отсутствует разбиение на страницы. Если какой-либо GridView закомментировать, то оставшийся работает как надо. Да, и используемая БД MsSQL.
Подскажите куда копать?
Re: Несколько GridView на странице
Попробуйте установить свой id для GridView
- chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Re: Несколько GridView на странице
это не помогаетfutbolim писал(а):Попробуйте установить свой id для GridView
Re: Несколько GridView на странице
Проблема в id-шниках. 99%
- chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Re: Несколько GridView на странице
Проблемы в id-шниках нет. 100% Сменил на ArrayDataProvider и всё работает как надо.futbolim писал(а):Проблема в id-шниках. 99%
Re: Несколько GridView на странице
При чем тут датапровайдер? В одном проекте у меня 4 грида на странице, и все работают
- chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Re: Несколько GridView на странице
Хорошо, не датапровайдер. Тогда что может быть ещё?Onotole писал(а):При чем тут датапровайдер? В одном проекте у меня 4 грида на странице, и все работают
Re: Несколько GridView на странице
5 минут на продебажить все до sortParam и pageParam для проверки почему они не работают и что вы не учли. xdebug уже настройте себе.
Re: Несколько GridView на странице
У них объект $query точно не одинаковый?
- chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Re: Несколько GridView на странице
query для каждого GridView вычисляет один и тот же класс, что типа такогоElisDN писал(а):У них объект $query точно не одинаковый?
Код: Выделить всё
class SomeAR extends ActiveRecord {
public function getItems() {return $this->hasMany(AnotherAr::classname(), ['id'=>'ar_id']);}
}
class SomeQuery extends ActiveQuery {
public function type1() {return $this->andWhere('type=1]);}
public function type2() {return $this->andWhere('type=2]);}
...
}
Код: Выделить всё
$dp1 = new ActiveDataProvider([
'query' => $someAr->getItems()->type1()
]);
$dp2 = new ActiveDataProvider([
'query' => $someAr->getItems()->type2()
]);