summaryrefslogtreecommitdiff
path: root/framework/Web/UI/WebControls/TDataGrid.php
diff options
context:
space:
mode:
authorxue <>2006-07-04 23:25:41 +0000
committerxue <>2006-07-04 23:25:41 +0000
commit9cc6b7fffd31f4b9ee9aceef9224c84dcf28aeb8 (patch)
treed3d6d907278b06feef3fc77c14d2231cfbff1125 /framework/Web/UI/WebControls/TDataGrid.php
parent2cf86eb80ae66da86eb2e37f0f99b2035241d3ae (diff)
Merge from 3.0 branch till 1239.
Diffstat (limited to 'framework/Web/UI/WebControls/TDataGrid.php')
-rw-r--r--framework/Web/UI/WebControls/TDataGrid.php32
1 files changed, 24 insertions, 8 deletions
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
}
/**
@@ -247,6 +247,14 @@ class TDataGrid extends TBaseDataList implements INamingContainer
}
/**
+ * @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.
* @return TTableStyle control style to be used
@@ -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)