Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Data Model Questions /

PaginatedList


Reply


2 Posts   734 Views

Avatar
Dimenicius

Community Member, 8 Posts

9 May 2013 at 6:52am

Edited: 13/05/2013 10:56am

Hi, I'm having some trouble working with PaginatedLists. Posted this on General Question Forum but I think here is the right place.
I want to make my category page show 15 post in a paginatedlist but the pages must go on 5 pages step. (i.e. Page1 results: post 1-15, Page2 results: post 6-20). The first 5 results won't show the same fields of the others.
The first page is working fine, but the buttons to change pages doesn't work, when I click on it, the URL changes but the page shows the same results.

Here is my actual code:

Subcategoria.php

public function Datalist(integer $num, $start ) {
$paginatedList = new PaginatedList(Page::get());
$paginatedList->setPageLength($num)->setPageStart($start)-> where('"ParentID" = 7')->Sort("ID", "Desc");
return $paginatedList;
}

subcategoria.ss

<% loop $Datalist(5,0) %>
<a href=$link> $Title </a><br>
<% end_loop %>

---<br><br>

<% loop $Datalist(10,5) %>
<a href=$link> $Title </a><br>
<% end_loop %>

=Pagination=<br><br>

<% if $Datalist(5,0).MoreThanOnePage %>
<% if $Datalist(5,0).NotFirstPage %>
<a class="prev" href="$Datalist(5,0).PrevLink">Prev</a>
<% end_if %>
<% loop $Datalist(5,0).Pages %>
<% if $CurrentBool %>
$PageNum
<% else %>
<% if $Link %>
<a href="$Link">$PageNum</a>
<% else %>
...
<% end_if %>
<% end_if %>
<% end_loop %>
<% if $Datalist(5,0).NotLastPage %>
<a class="next" href="$Datalist(5,0).NextLink">Next</a>
<% end_if %>
<% end_if %>

I've tried to:

   public function Paginando() {
return new PaginatedList($this->Children(),$this->request);
}

just to make it work with the children pages, but whenever i add the "$this->request", the page crash and shows this message:

26    public function __construct(SS_List $list, $request = array()) {
27       if (!is_array($request) && !$request instanceof ArrayAccess) {
28          throw new Exception('The request must be readable as an array.');
29       }

Avatar
bepe

Community Member, 4 Posts

17 June 2013 at 3:20am

i fixed this error by putting my Paginando-function into the Controller-Class.

that's also [url=http://www.silverstripe.org/general-questions/show/23664#post322102]the answer[/url] to one of your other threads.

(i found this thread first, so there should be a answer to this question, too.)