From e5477d462399aaf73836a069bc19775d7b8b1918 Mon Sep 17 00:00:00 2001 From: xue <> Date: Sun, 26 Nov 2006 20:09:44 +0000 Subject: Fixed the bug that TPager would not display if it was invisible previously --- framework/Web/UI/WebControls/TPager.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'framework/Web/UI/WebControls') diff --git a/framework/Web/UI/WebControls/TPager.php b/framework/Web/UI/WebControls/TPager.php index e3aee892..df096125 100644 --- a/framework/Web/UI/WebControls/TPager.php +++ b/framework/Web/UI/WebControls/TPager.php @@ -51,6 +51,8 @@ class TPager extends TWebControl implements INamingContainer const CMD_PAGE_FIRST='First'; const CMD_PAGE_LAST='Last'; + private $_pageCount=0; + /** * Restores the pager state. * This method overrides the parent implementation and is invoked when @@ -268,16 +270,28 @@ class TPager extends TWebControl implements INamingContainer if(($targetControl=$this->getNamingContainer()->findControl($controlID))===null || !($targetControl instanceof TDataBoundControl)) throw new TConfigurationException('pager_controltopaginate_invalid',$controlID); - if($targetControl->getAllowPaging() && $targetControl->getPageCount()>1) + if($targetControl->getAllowPaging()) { - $this->setVisible(true); + $this->_pageCount=$targetControl->getPageCount(); $this->getControls()->clear(); $this->setPageCount($targetControl->getPageCount()); $this->setCurrentPageIndex($targetControl->getCurrentPageIndex()); $this->buildPager(); } else - $this->setVisible(false); + $this->_pageCount=0; + } + + /** + * Renders the control. + * The method overrides the parent implementation by rendering + * the pager only when there are two or more pages. + * @param THtmlWriter the writer + */ + public function render($writer) + { + if($this->_pageCount>1) + parent::render($writer); } /** -- cgit v1.2.3