From 9cc6b7fffd31f4b9ee9aceef9224c84dcf28aeb8 Mon Sep 17 00:00:00 2001 From: xue <> Date: Tue, 4 Jul 2006 23:25:41 +0000 Subject: Merge from 3.0 branch till 1239. --- framework/Web/UI/WebControls/TDataGrid.php | 32 ++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'framework/Web/UI/WebControls/TDataGrid.php') diff --git a/framework/Web/UI/WebControls/TDataGrid.php b/framework/Web/UI/WebControls/TDataGrid.php index fead5344..f7697fec 100644 --- a/framework/Web/UI/WebControls/TDataGrid.php +++ b/framework/Web/UI/WebControls/TDataGrid.php @@ -213,7 +213,7 @@ class TDataGrid extends TBaseDataList implements INamingContainer if($object instanceof TDataGridColumn) $this->getColumns()->add($object); else - parent::addParsedObject($object); + parent::addParsedObject($object); // this is needed by EmptyTemplate } /** @@ -246,6 +246,14 @@ class TDataGrid extends TBaseDataList implements INamingContainer return $this->_items; } + /** + * @return integer number of items + */ + public function getItemCount() + { + return $this->_items?$this->_items->getCount():0; + } + /** * Creates a style object for the control. * This method creates a {@link TTableStyle} to be used by datagrid. @@ -892,13 +900,16 @@ class TDataGrid extends TBaseDataList implements INamingContainer { foreach($columns as $column) $column->initialize(); - if($allowPaging) - $this->_topPager=$this->createPager(); - $this->_header=$this->createItemInternal(-1,-1,self::IT_HEADER,false,null,$columns); $selectedIndex=$this->getSelectedItemIndex(); $editIndex=$this->getEditItemIndex(); for($index=0;$index<$itemCount;++$index) { + if($index===0) + { + if($allowPaging) + $this->_topPager=$this->createPager(); + $this->_header=$this->createItemInternal(-1,-1,self::IT_HEADER,false,null,$columns); + } if($index===$editIndex) $itemType=self::IT_EDITITEM; else if($index===$selectedIndex) @@ -910,9 +921,12 @@ class TDataGrid extends TBaseDataList implements INamingContainer $items->add($this->createItemInternal($index,$dsIndex,$itemType,false,null,$columns)); $dsIndex++; } - $this->_footer=$this->createItemInternal(-1,-1,self::IT_FOOTER,false,null,$columns); - if($allowPaging) - $this->_bottomPager=$this->createPager(); + if($index>0) + { + $this->_footer=$this->createItemInternal(-1,-1,self::IT_FOOTER,false,null,$columns); + if($allowPaging) + $this->_bottomPager=$this->createPager(); + } } if(!$dsIndex && $this->_emptyTemplate!==null) { @@ -1287,6 +1301,8 @@ class TDataGrid extends TBaseDataList implements INamingContainer foreach($this->getControls() as $index=>$item) { + if(!($item instanceof TDataGridItem) && !($item instanceof TDataGridPager)) + continue; $itemType=$item->getItemType(); switch($itemType) { @@ -1423,7 +1439,7 @@ class TDataGrid extends TBaseDataList implements INamingContainer $this->renderContents($writer); $control->renderEndTag($writer); } - else + else if($this->getViewState('ItemCount',0)>0) { $this->applyItemStyles(); if($this->_topPager) -- cgit v1.2.3