From 42df6f47862c2f1495ded49f758dbc46f9d9e930 Mon Sep 17 00:00:00 2001 From: xue <> Date: Thu, 4 May 2006 20:00:46 +0000 Subject: Merge from 3.0 branch till 1023. --- framework/Web/UI/WebControls/TDataGrid.php | 93 ++++++++++++++++++++++++++++-- 1 file changed, 87 insertions(+), 6 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 55b12ebc..6ff6faba 100644 --- a/framework/Web/UI/WebControls/TDataGrid.php +++ b/framework/Web/UI/WebControls/TDataGrid.php @@ -356,6 +356,39 @@ class TDataGrid extends TBaseDataList implements INamingContainer return $style; } + /** + * @return string caption for the datagrid + */ + public function getCaption() + { + return $this->getViewState('Caption',''); + } + + /** + * @param string caption for the datagrid + */ + public function setCaption($value) + { + $this->setViewState('Caption',$value,''); + } + + /** + * @return string datagrid caption alignment. Defaults to 'NotSet'. + */ + public function getCaptionAlign() + { + return $this->getViewState('CaptionAlign','NotSet'); + } + + /** + * @param string datagrid caption alignment. Valid values include + * 'NotSet','Top','Bottom','Left','Right'. + */ + public function setCaptionAlign($value) + { + $this->setViewState('CaptionAlign',TPropertyValue::ensureEnum($value,'NotSet','Top','Bottom','Left','Right'),'NotSet'); + } + /** * @return TDataGridItem the header item */ @@ -1443,6 +1476,23 @@ class TDataGrid extends TBaseDataList implements INamingContainer } } + /** + * Renders the openning tag for the datagrid control which will render table caption if present. + * @param THtmlWriter the writer used for the rendering purpose + */ + public function renderBeginTag($writer) + { + parent::renderBeginTag($writer); + if(($caption=$this->getCaption())!=='') + { + if(($align=$this->getCaptionAlign())!=='NotSet') + $writer->addAttribute('align',strtolower($align)); + $writer->renderBeginTag('caption'); + $writer->write($caption); + $writer->renderEndTag(); + } + } + /** * Renders the datagrid. * @param THtmlWriter writer for the rendering purpose @@ -1457,12 +1507,7 @@ class TDataGrid extends TBaseDataList implements INamingContainer $this->_topPager->renderControl($writer); $writer->writeLine(); } - $this->renderBeginTag($writer); - $this->_header->renderControl($writer); - foreach($this->getItems() as $item) - $item->renderControl($writer); - $this->_footer->renderControl($writer); - $this->renderEndTag($writer); + $this->renderTable($writer); if($this->_bottomPager) { $writer->writeLine(); @@ -1470,6 +1515,38 @@ class TDataGrid extends TBaseDataList implements INamingContainer } } } + + /** + * Renders the tabular data. + * @param THtmlWriter writer + */ + protected function renderTable($writer) + { + $this->renderBeginTag($writer); + if($this->_header->getVisible()) + { + $writer->writeLine(); + $writer->renderBeginTag('thead'); + $this->_header->render($writer); + $writer->renderEndTag(); + } + $writer->writeLine(); + $writer->renderBeginTag('tbody'); + foreach($this->getItems() as $item) + $item->renderControl($writer); + $writer->renderEndTag(); + + if($this->_footer->getVisible()) + { + $writer->writeLine(); + $writer->renderBeginTag('tfoot'); + $this->_footer->render($writer); + $writer->renderEndTag(); + } + + $writer->writeLine(); + $this->renderEndTag($writer); + } } /** @@ -1758,6 +1835,10 @@ class TDataGridItem extends TTableRow implements INamingContainer $this->_itemIndex=$itemIndex; $this->_dataSourceIndex=$dataSourceIndex; $this->setItemType($itemType); + if($itemType===TDataGrid::IT_HEADER) + $this->setTableSection('Header'); + else if($itemType===TDataGrid::IT_FOOTER) + $this->setTableSection('Footer'); } /** -- cgit v1.2.3