protected function RenderPager() { $pages = ceil($this->TotalItems / $this->ItemsPerPage); if ($pages < 2) { return; } log_debug("RenderPager: {$this->CurrentPage}/{$pages}"); $ui = new Control('div'); $ui->addClass("pager"); if ($this->CurrentPage > 1) { $ui->content(new Anchor("javascript: \$('#{$this->id}').gotoPage(1)", "|<")); $ui->content(new Anchor("javascript: \$('#{$this->id}').gotoPage(" . ($this->CurrentPage - 1) . ")", "<")); } $start = 1; while ($pages > $this->MaxPagesToShow && $this->CurrentPage > $start + $this->MaxPagesToShow / 2) { $start++; } for ($i = $start; $i <= $pages && $i < $start + $this->MaxPagesToShow; $i++) { if ($i == $this->CurrentPage) { $ui->content("<span class='current'>{$i}</span>"); } else { $ui->content(new Anchor("javascript: \$('#{$this->id}').gotoPage({$i})", $i)); } } if ($this->CurrentPage < $pages) { $ui->content(new Anchor("javascript: \$('#{$this->id}').gotoPage(" . ($this->CurrentPage + 1) . ")", ">")); $ui->content(new Anchor("javascript: \$('#{$this->id}').gotoPage({$pages})", ">|")); } return $ui; }