Beispiel #1
0
 /**
  * Renders data grid body.
  * @return string
  */
 public function renderBody()
 {
     $container = $this->getWrapper('datagrid container');
     // headers
     $header = Html::el($container->getName() == 'table' ? 'thead' : NULL);
     $header->add($this->generateHeaderRow());
     if ($this->dataGrid->hasFilters()) {
         $header->add($this->generateFilterRow());
     }
     // footer
     $footer = Html::el($container->getName() == 'table' ? 'tfoot' : NULL);
     $footer->add($this->generateFooterRow());
     // body
     $body = Html::el($container->getName() == 'table' ? 'tbody' : NULL);
     if ($this->dataGrid->paginator->itemCount) {
         $iterator = new Nette\Iterators\CachingIterator($this->dataGrid->getRows());
         foreach ($iterator as $data) {
             $row = $this->generateContentRow($data);
             $row->addClass($iterator->isEven() ? $this->getValue('row.content .even') : NULL);
             $body->add($row);
         }
     } else {
         $size = count($this->dataGrid->getColumns());
         $row = $this->getWrapper('row.content container');
         $cell = $this->getWrapper('row.content cell container');
         $cell->colspan = $size;
         $cell->style = 'text-align:center';
         $cell->add(Html::el('div')->setText($this->dataGrid->translate('No data were found')));
         $row->add($cell);
         $body->add($row);
     }
     if ($container->getName() == 'table') {
         $container->add($header);
         $container->add($footer);
         $container->add($body);
     } else {
         $container->add($header);
         $container->add($body);
         $container->add($footer);
     }
     return $container->render(0);
 }