summaryrefslogtreecommitdiff
path: root/framework/Web/UI/WebControls/TDataGrid.php
diff options
context:
space:
mode:
authorxue <>2006-02-04 23:56:29 +0000
committerxue <>2006-02-04 23:56:29 +0000
commit139ca38ddcf4998c882cfc98cb932524de210d86 (patch)
tree99471fff9e2db46d01e5473cfd5c1566c7c1209a /framework/Web/UI/WebControls/TDataGrid.php
parent97d5ad831a6003418562b7f44e9a08e562d88a0c (diff)
Modified TDataGrid sample to enable updating rating.
Diffstat (limited to 'framework/Web/UI/WebControls/TDataGrid.php')
-rw-r--r--framework/Web/UI/WebControls/TDataGrid.php106
1 files changed, 48 insertions, 58 deletions
diff --git a/framework/Web/UI/WebControls/TDataGrid.php b/framework/Web/UI/WebControls/TDataGrid.php
index eceb498b..1817d03e 100644
--- a/framework/Web/UI/WebControls/TDataGrid.php
+++ b/framework/Web/UI/WebControls/TDataGrid.php
@@ -869,76 +869,66 @@ class TDataGrid extends TBaseDataList implements INamingContainer
$this->reset();
$keys=$this->getDataKeys();
$keys->clear();
- if($data instanceof Traversable)
+ $keyField=$this->getDataKeyField();
+ $this->_pagedDataSource=$ds=$this->createPagedDataSource();
+ $ds->setDataSource($data);
+ $allowPaging=$ds->getAllowPaging();
+ if($allowPaging && $ds->getCurrentPageIndex()>=$ds->getPageCount())
+ throw new TInvalidDataValueException('datagrid_currentpageindex_invalid');
+ // get all columns
+ if($this->getAutoGenerateColumns())
{
- $keyField=$this->getDataKeyField();
- $this->_pagedDataSource=$ds=$this->createPagedDataSource();
- $ds->setDataSource($data);
- $allowPaging=$ds->getAllowPaging();
- if($allowPaging && $ds->getCurrentPageIndex()>=$ds->getPageCount())
- throw new TInvalidDataValueException('datagrid_currentpageindex_invalid');
- // get all columns
- if($this->getAutoGenerateColumns())
- {
- $columns=new TList($this->getColumns());
- $autoColumns=$this->createAutoColumns($ds);
- $columns->mergeWith($autoColumns);
- }
- else
- $columns=$this->getColumns();
+ $columns=new TList($this->getColumns());
+ $autoColumns=$this->createAutoColumns($ds);
+ $columns->mergeWith($autoColumns);
+ }
+ else
+ $columns=$this->getColumns();
- $items=$this->getItems();
+ $items=$this->getItems();
- if(($columnCount=$columns->getCount())>0)
- {
- foreach($columns as $column)
- $column->initialize();
- $allowPaging=$ds->getAllowPaging();
- if($allowPaging)
- $this->createPager(-1,-1,$columnCount,$ds);
- $this->createItemInternal(-1,-1,'Header',true,null,$columns);
- $selectedIndex=$this->getSelectedItemIndex();
- $editIndex=$this->getEditItemIndex();
- $index=0;
- $dsIndex=$ds->getAllowPaging()?$ds->getFirstIndexInPage():0;
- foreach($ds as $data)
- {
- if($keyField!=='')
- $keys->add($this->getDataFieldValue($data,$keyField));
- if($index===$editIndex)
- $itemType='EditItem';
- else if($index===$selectedIndex)
- $itemType='SelectedItem';
- else if($index % 2)
- $itemType='AlternatingItem';
- else
- $itemType='Item';
- $items->add($this->createItemInternal($index,$dsIndex,$itemType,true,$data,$columns));
- $index++;
- $dsIndex++;
- }
- $this->createItemInternal(-1,-1,'Footer',true,null,$columns);
- if($allowPaging)
- $this->createPager(-1,-1,$columnCount,$ds);
- $this->setViewState('ItemCount',$index,0);
- $this->setViewState('PageCount',$ds->getPageCount(),0);
- $this->setViewState('DataSourceCount',$ds->getDataSourceCount(),0);
- }
- else
+ if(($columnCount=$columns->getCount())>0)
+ {
+ foreach($columns as $column)
+ $column->initialize();
+ $allowPaging=$ds->getAllowPaging();
+ if($allowPaging)
+ $this->createPager(-1,-1,$columnCount,$ds);
+ $this->createItemInternal(-1,-1,'Header',true,null,$columns);
+ $selectedIndex=$this->getSelectedItemIndex();
+ $editIndex=$this->getEditItemIndex();
+ $index=0;
+ $dsIndex=$ds->getAllowPaging()?$ds->getFirstIndexInPage():0;
+ foreach($ds as $data)
{
- $this->clearViewState('ItemCount');
- $this->clearViewState('PageCount');
- $this->clearViewState('DataSourceCount');
+ if($keyField!=='')
+ $keys->add($this->getDataFieldValue($data,$keyField));
+ if($index===$editIndex)
+ $itemType='EditItem';
+ else if($index===$selectedIndex)
+ $itemType='SelectedItem';
+ else if($index % 2)
+ $itemType='AlternatingItem';
+ else
+ $itemType='Item';
+ $items->add($this->createItemInternal($index,$dsIndex,$itemType,true,$data,$columns));
+ $index++;
+ $dsIndex++;
}
- $this->_pagedDataSource=null;
+ $this->createItemInternal(-1,-1,'Footer',true,null,$columns);
+ if($allowPaging)
+ $this->createPager(-1,-1,$columnCount,$ds);
+ $this->setViewState('ItemCount',$index,0);
+ $this->setViewState('PageCount',$ds->getPageCount(),0);
+ $this->setViewState('DataSourceCount',$ds->getDataSourceCount(),0);
}
else
{
- $this->_pagedDataSource=null;
$this->clearViewState('ItemCount');
$this->clearViewState('PageCount');
$this->clearViewState('DataSourceCount');
}
+ $this->_pagedDataSource=null;
}
/**