/**
  * Renders the custom datatable filter.
  *
  * @param Twig_Environment      $twig
  * @param AbstractDatatableView $datatable
  * @param AbstractColumn        $column
  * @param integer               $loopIndex
  *
  * @return mixed|string|void
  */
 public function datatableFilterRender(Twig_Environment $twig, AbstractDatatableView $datatable, AbstractColumn $column, $loopIndex)
 {
     if ($filterProperty = $column->getFilter()->getProperty()) {
         $filterColumnId = $datatable->getColumnIdByColumnName($filterProperty);
     } else {
         $filterColumnId = $loopIndex;
     }
     return $twig->render($column->getFilter()->getTemplate(), array('column' => $column, 'filterColumnId' => $filterColumnId, 'selectorId' => $loopIndex, 'tableId' => $datatable->getName()));
 }
 /**
  * Renders the js template.
  *
  * @param AbstractDatatableView $datatable
  *
  * @return mixed|string|void
  * @throws Exception
  */
 public function datatableRenderJs(AbstractDatatableView $datatable)
 {
     return $datatable->render('js');
 }
 public function __construct(\Symfony\Bundle\TwigBundle\TwigEngine $templating, \Symfony\Component\Translation\TranslatorInterface $translator, \Symfony\Component\Routing\RouterInterface $router, array $defaultLayoutOptions)
 {
     parent::__construct($templating, $translator, $router, $defaultLayoutOptions);
     $this->getAjax()->setType($this->requestType);
 }