Grido\Grid::setDefaultSort PHP Method

setDefaultSort() public method

Sets default sorting.
public setDefaultSort ( array $sort ) : Grid
$sort array
return Grid
    public function setDefaultSort(array $sort)
    {
        static $replace = ['asc' => Column::ORDER_ASC, 'desc' => Column::ORDER_DESC];
        foreach ($sort as $column => $dir) {
            $dir = strtr(strtolower($dir), $replace);
            if (!in_array($dir, $replace)) {
                throw new Exception("Dir '{$dir}' for column '{$column}' is not allowed.");
            }
            $this->defaultSort[$column] = $dir;
        }
        return $this;
    }

Usage Example

 /**
  * Builds listing grid
  *
  * @param string|null $name
  * @return Grid
  * @throws \Grido\Exception
  */
 public function createComponentDataGrid($name = NULL)
 {
     $data = $this->generateDataForGrid();
     $dataGrid = new Grid($this, $name);
     $dataGrid->setRowCallback(function ($row, $tr) {
         /** @var Nette\Utils\Html $tr */
         if (empty($row['translation'])) {
             $tr->attrs['class'][] = 'untranslated';
         }
         return $tr;
     });
     $dataGrid->setFilterRenderType(Filter::RENDER_INNER);
     $dataGrid->setModel(new ArraySource($data));
     $dataGrid->addActionHref('remove', 'Remove', 'remove');
     $dataGrid->setDefaultSort(array('translation' => 'ASC'));
     // Columns
     $catalogueColumn = $dataGrid->addColumnText('catalogue', 'Catalogue');
     $catalogueColumn->setCustomRender(function ($values) {
         return ucfirst($values['catalogue']);
     });
     $catalogueColumn->setFilterSelect($this->getCataloguesInModel($data));
     $catalogueColumn->setSortable();
     $dataGrid->addColumnText('id', 'Code')->setSortable()->setFilterText();
     $translationColumn = $dataGrid->addColumnText('translation', 'Translation');
     $translationColumn->setFilterText();
     $translationColumn->setCustomRender(function ($values) {
         $el = Nette\Utils\Html::el('textarea');
         $el->addAttributes(array('type' => 'text', 'class' => 'text', 'rows' => 1, 'data-translation-control-change-url' => $this->link('saveTranslation!', array('catalogue' => $values['catalogue'], 'code' => $values['id'], 'language' => $this->locale))));
         $el->add(str_replace('|', "|\n", $values['translation']));
         return $el;
     });
     return $dataGrid;
 }
All Usage Examples Of Grido\Grid::setDefaultSort