This topic contains 8 replies, has 3 voices, and was last updated by a.azadi 5 years, 2 months ago.
- Topic
Hi everyone. I wanted to write a sorter for a datagrid which is getting its columns and data from a listener.
This is my two methods in my listener class.
I want to know how to make sorter for these columns.
Also during searching I found out a method in “DatagridConfiguration” called “addSorter”. But I don’t know how to use it IF it’s gonna work for adding sorter to our columns.Thank You,
Aryana.1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768/*** @param BuildBefore $event*/public function onBuildBefore(BuildBefore $event){$filters = $event->getDatagrid()->getParameters()->get('_filter');$datagridConfiguration = $event->getConfig();$this->addGroupContactsColumn($datagridConfiguration, $filters);}/*** @param DatagridConfiguration $datagridConfiguration*/protected function addGroupContactsColumn(DatagridConfiguration $datagridConfiguration, $filter){$couter = 0;$visitor = null;$visitfromDate = null;$visittoDate = null;if (isset($filter['visitDate'])) {$visitfromDate = new \DateTime($filter['visitDate']['value']['start'], new \DateTimeZone('UTC'));$visittoDate = new \DateTime($filter['visitDate']['value']['end'], new \DateTimeZone('UTC'));}if (isset($filter['visitorName'])) {$visitor = $filter['visitorName'];}$qb = $this->em->getRepository("WebSysVisitBundle:Visit")->createQueryBuilder("v")->addSelect("g.id as groupId , g.label as groupName")->join("v.visitor", "user")->join("v.customer", "contact")->join("contact.groups", "g")->addGroupBy("g.id ,g.label");if ($visitor) {$searchstring = $visitor['value'];$qb->andWhere(" user.firstName like :searchstring or user.lastName like :searchstring ")->setParameter('searchstring', $searchstring);}if ($visitfromDate) {$qb->andWhere(" Date(v.inTime) >= :fromDate ")->setParameter('fromDate', $visitfromDate->format('Y-m-d'));}if ($visittoDate) {$qb->andWhere(" Date(v.inTime) <= :toDate ")->setParameter('toDate', $visittoDate->format('Y-m-d'));}$result = $qb->getQuery()->getResult();foreach ($result as $group) {$column = ['label' => $group['groupName'],];// column name should be ther same as the field alias in the select query$datagridConfiguration->addColumn($group['groupName'], $column);}}
The forum ‘OroCRM – Programming Questions’ is closed to new topics and replies.