Custom Datagrid paging with PROPEL
From PRADO Wiki
[edit]
Custom Paging for Datagrid w/ PROPEL
Keep in mind i am using PROPEL for my database access, but you should be able to convert it into how you may be doing it. The main points are setting "VirtualItemCount" and "AllowCustomPaging="True"".
class EmailPage extends TPage { public function onLoad($param) { parent::onLoad($param); if (!$this->IsPostBack) { $this->MemberDataGrid->DataSource = $this->populateMemberDataGrid(); $this->MemberDataGrid->dataBind(); } } public function populateMemberDataGrid() { $this->MemberDataGrid->VirtualItemCount = EmaillistmemberlinkPeer::doCountJoinAll(new Criteria()); $c = new Criteria(); $c->setLimit($this->MemberDataGrid->PageSize); $c->setOffset($c->getLimit() * $this->MemberDataGrid->CurrentPageIndex); $list = EmaillistmemberlinkPeer::doSelectJoinAll($c); //Handle no data if (count($list) === 0) $this->MemberDataMultiView->ActiveView=$this->MemberNoDataView; else $this->MemberDataMultiView->ActiveView=$this->MemberDataView; return $list; } public function OnPageIndexChanged($sender,$param) { $dgId = $sender->ID; $this->$dgId->CurrentPageIndex=$param->NewPageIndex; $this->$dgId->DataSource = $this->populateDataGrid($dgId); $this->$dgId->dataBind(); } ?>
<com:TDataGrid ID="MemberDataGrid" AutoGenerateColumns="False" PageSize="20" AllowCustomPaging="True" DataKeyField="Emaillistmember.Id" OnPageIndexChanged="Page.OnPageIndexChanged"> <com:TBoundColumn HeaderText="Email" DataField="Emaillistmember.Email" /> <com:TBoundColumn HeaderText="List" DataField="Emaillist.Name" /> <com:TCheckBoxColumn HeaderText="Disabled" DataField="Emaillistmember.Disabled" /> <com:TEditCommandColumn ButtonType="PushButton" HeaderText="Action" EditText="Edit" ItemStyle.HorizontalAlign="Center"/> </com:TDataGrid>

