Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** TBaseDataList class file** @author Qiang Xue <qiang.xue@gmail.com>* @link http://www.pradosoft.com/* @copyright Copyright © 2005-2008 PradoSoft* @license http://www.pradosoft.com/license/* @version $Id: TBaseDataList.php 2541 2008-10-21 15:05:13Z qiang.xue $* @package System.Web.UI.WebControls*//*** Includes TDataBoundControl and TDataFieldAccessor classes*/Prado::using('System.Web.UI.WebControls.TDataBoundControl');Prado::using('System.Util.TDataFieldAccessor');/*** TBaseDataList class** TBaseDataList is the base class for data listing controls, including* {@link TDataList} and {@link TDataGrid}.** The key field in the data source is specified by {@link setKeyField KeyField},* while {@link getKeyValues KeyValues} stores the key values of each record in* a data listing control. You may use the list item index to obtain the corresponding* database key value.** TBaseDataList also implements a few properties used for presentation based* on tabular layout. The {@link setCaption Caption}, whose alignment is* specified via {@link setCaptionAlign CaptionAlign}, is rendered as the table caption.* The table cellpadding and cellspacing are specified by* {@link setCellPadding CellPadding} and {@link setCellSpacing CellSpacing}* properties, respectively. The {@link setGridLines GridLines} specifies how* the table should display its borders, and the horizontal alignment of the table* content can be specified via {@link setHorizontalAlign HorizontalAlign}.** @author Qiang Xue <qiang.xue@gmail.com>* @version $Id: TBaseDataList.php 2541 2008-10-21 15:05:13Z qiang.xue $* @package System.Web.UI.WebControls* @since 3.0*/abstract class TBaseDataList extends TDataBoundControl{/*** Creates a style object for the control.* This method creates a {@link TTableStyle} to be used by the data list control.* @return TTableStyle control style to be used*/protected function createStyle(){return new TTableStyle;}/*** @return integer the cellspacing for the table layout. Defaults to -1, meaning not set.*/public function getCellSpacing(){if($this->getHasStyle())return $this->getStyle()->getCellSpacing();elsereturn -1;}/*** @param integer the cellspacing for the table layout.*/public function setCellSpacing($value){$this->getStyle()->setCellSpacing($value);}/*** @return integer the cellpadding for the table layout. Defaults to -1, meaning not set.*/public function getCellPadding(){if($this->getHasStyle())return $this->getStyle()->getCellPadding();elsereturn -1;}/*** @param integer the cellpadding for the table layout*/public function setCellPadding($value){$this->getStyle()->setCellPadding($value);}/*** @return THorizontalAlign the horizontal alignment of the table content. Defaults to THorizontalAlign::NotSet.*/public function getHorizontalAlign(){if($this->getHasStyle())return $this->getStyle()->getHorizontalAlign();elsereturn THorizontalAlign::NotSet;}/*** @param THorizontalAlign the horizontal alignment of the table content.*/public function setHorizontalAlign($value){$this->getStyle()->setHorizontalAlign($value);}/*** @return TTableGridLines the grid line setting of the table layout. Defaults to TTableGridLines::None.*/public function getGridLines(){if($this->getHasStyle())return $this->getStyle()->getGridLines();elsereturn TTableGridLines::None;}/*** Sets the grid line style of the table layout.* @param TTableGridLines the grid line setting of the table*/public function setGridLines($value){$this->getStyle()->setGridLines($value);}/*** @return string the field of the data source that provides the keys of the list items.*/public function getDataKeyField(){return $this->getViewState('DataKeyField','');}/*** @param string the field of the data source that provides the keys of the list items.*/public function setDataKeyField($value){$this->setViewState('DataKeyField',$value,'');}/*** @return TList the keys used in the data listing control.*/public function getDataKeys(){if(($dataKeys=$this->getViewState('DataKeys',null))===null){$dataKeys=new TList;$this->setViewState('DataKeys',$dataKeys,null);}return $dataKeys;}/*** Returns the value of the data at the specified field.* If data is an array, TMap or TList, the value will be returned at the index* of the specified field. If the data is a component with a property named* as the field name, the property value will be returned.* Otherwise, an exception will be raised.* @param mixed data item* @param mixed field name* @return mixed data value at the specified field* @throws TInvalidDataValueException if the data is invalid*/protected function getDataFieldValue($data,$field){return TDataFieldAccessor::getDataFieldValue($data,$field);}/*** Raises OnSelectedIndexChanged event.* This method is invoked when a different item is selected* in a data listing control between posts to the server.* @param mixed event parameter*/public function onSelectedIndexChanged($param){$this->raiseEvent('OnSelectedIndexChanged',$this,$param);}}