Zoradovanie dat v tabulke
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- duskohu
- Člen | 778
Caute. Navrhol som si sposob ako zoradovat data v tabulke, ale hladam akym sposobom by som to vedel urobit znovupouzitelne. Uvazoval som ci by sa to nedalo pouzit ako komponenta, ale problem je v tom ze komponentu viem volat v presenteri len raz, do BasePresentru to nechcem umiestnovat. Nevedeli by ste mi poradit ako to vhodne riesit?
class Presenter extends \BasePresenter {
/** @persistent Default column */
public $order = "datetime";
/** @persistent Default by */
public $sort = "asc";
/**
* sortLink
* @param string $column
* @param string|NULL $title
* @param array $attributes
* @return Nette\Utils\Html
*/
public function sortLink($column, $title = NULL, $attributes = array()) {
$linkParams['order'] = $column;
if ($title == NULL) {
$title = $column;
}
if ($column == $this->order) {
$linkParams['sort'] = $this->sort == "asc" ? "desc" : "asc";
$attributes["class"] = "sort-$this->sort";
} else {
$linkParams['sort'] = "asc";
}
$url = $this->link("this", $linkParams);
$link = Html::el('a', $attributes)->href($url)->setText($title);
return $link;
}
public function renderDefault($order, $sort) {
\Nette\Diagnostics\Debugger::barDump("$this->order $this->sort");
}
}
sablona latte
<thead>
<tr>
<th>{$presenter->sortLink("type", "Typ")}</th>
<th>{$presenter->sortLink("datetime", "Dátum")}</th>
</tr>
</thead>