包 | system.web |
---|---|
继承 | abstract class CDataProvider » CComponent |
实现 | IDataProvider |
子类 | CActiveDataProvider, CArrayDataProvider, CSqlDataProvider |
源自 | 1.1 |
版本 | $Id: CDataProvider.PHP 3426 2011-10-25 00:01:09Z alexander.makarow $ |
源码 |
CDataProvider是实现IDataProvider接口的基类。
继承的类主要实现三个方法:fetchData, fetchKeys和calculateTotalItemCount。
继承的类主要实现三个方法:fetchData, fetchKeys和calculateTotalItemCount。
公共属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
data | array | 返回当前可用的数据项。 | CDataProvider |
id | string | 返回所有数据提供者的唯一标识ID。 | CDataProvider |
itemCount | integer | 返回当前页面的数据项数目。 | CDataProvider |
keys | array | 返回相关数据项的键。 | CDataProvider |
pagination | CPagination | 返回pagination对象。 | CDataProvider |
sort | CSort | 返回sort对象。 | CDataProvider |
totalItemCount | integer | 返回所有数据项的总数。 | CDataProvider |
公共方法
方法 | 描述 | 定义在 |
---|---|---|
__call() | 如果类中没有调的方法名,则调用这个方法。 | CComponent |
__get() | 返回一个属性值、一个事件处理程序列表或一个行为名称。 | CComponent |
__isset() | 检查一个属性是否为null。 | CComponent |
__set() | 设置一个组件的属性值。 | CComponent |
__unset() | 设置一个组件的属性为null。 | CComponent |
asa() | 返回这个名字的行为对象。 | CComponent |
attachBehavior() | 附加一个行为到组件。 | CComponent |
attachBehaviors() | 附加一个行为列表到组件。 | CComponent |
attachEventHandler() | 为事件附加一个事件处理程序。 | CComponent |
canGetProperty() | 确定属性是否可读。 | CComponent |
canSetProperty() | 确定属性是否可写。 | CComponent |
detachBehavior() | 从组件中分离一个行为。 | CComponent |
detachBehaviors() | 从组件中分离所有行为。 | CComponent |
detachEventHandler() | 分离一个存在的事件处理程序。 | CComponent |
disableBehavior() | 禁用一个附加行为。 | CComponent |
disableBehaviors() | 禁用组件附加的所有行为。 | CComponent |
enableBehavior() | 启用一个附加行为。 | CComponent |
enableBehaviors() | 启用组件附加的所有行为。 | CComponent |
evaLuateExpression() | 计算一个PHP表达式,或根据组件上下文执行回调。 | CComponent |
getData() | 返回当前可用的数据项。 | CDataProvider |
getEventHandlers() | 返回一个事件的附加处理程序列表。 | CComponent |
getId() | 返回所有数据提供者的唯一标识ID。 | CDataProvider |
getItemCount() | 返回当前页面的数据项数目。 | CDataProvider |
getKeys() | 返回相关数据项的键。 | CDataProvider |
getPagination() | 返回pagination对象。 | CDataProvider |
getSort() | 返回sort对象。 | CDataProvider |
getTotalItemCount() | 返回所有数据项的总数。 | CDataProvider |
hasEvent() | 确定一个事件是否定义。 | CComponent |
hasEventHandler() | 检查事件是否有附加的处理程序。 | CComponent |
hasProperty() | 确定属性是否被定义。 | CComponent |
raiseEvent() | 发起一个事件。 | CComponent |
setData() | 为provider设置数据项。 | CDataProvider |
setId() | 设置provider的ID。 | CDataProvider |
setKeys() | 为provider设置数据项的键。 | CDataProvider |
setPagination() | 设置provider的pagination对象。 | CDataProvider |
setSort() | 为数据提供者设置排序。 | CDataProvider |
setTotalItemCount() | 设置所有数据项的总数。 | CDataProvider |
受保护方法
方法 | 描述 | 定义在 |
---|---|---|
calculateTotalItemCount() | 设置数据项的总数。 | CDataProvider |
fetchData() | 提取的持久性数据存储的数据。 | CDataProvider |
fetchKeys() | 提取的持久性数据存储的数据键。 | CDataProvider |
属性详细
data
属性
public array getData(boolean $refresh=false)
public void setData(array $value)
public void setData(array $value)
返回当前可用的数据项。
id
属性
public string getId()
public void setId(string $value)
public void setId(string $value)
返回所有数据提供者的唯一标识ID。
itemCount
属性
只读
public integer getItemCount(boolean $refresh=false)
返回当前页面的数据项数目。
和count($provider->getData())
的结果相同。
当pagination为false时,返回和totalItemCount相等的值。
keys
属性
public array getKeys(boolean $refresh=false)
public void setKeys(array $value)
public void setKeys(array $value)
返回相关数据项的键。
pagination
属性
public CPagination getPagination()
public void setPagination(mixed $value)
public void setPagination(mixed $value)
返回pagination对象。
sort
属性
public CSort getSort()
public void setSort(mixed $value)
public void setSort(mixed $value)
返回sort对象。
totalItemCount
属性
public integer getTotalItemCount(boolean $refresh=false)
public void setTotalItemCount(integer $value)
public void setTotalItemCount(integer $value)
返回所有数据项的总数。 当pagination为false时,返回的值与itemCount相等。
方法详细
calculateTotalItemCount()
方法
abstract protected integer calculateTotalItemCount()
| ||
{return} | integer | 数据项的总数。 |
abstract protected function calculateTotalItemCount();
设置数据项的总数。
fetchData()
方法
abstract protected array fetchData()
| ||
{return} | array | 数据项的列表 |
abstract protected function fetchData();
提取的持久性数据存储的数据。
fetchKeys()
方法
abstract protected array fetchKeys()
| ||
{return} | array | 数据项的键列表。 |
abstract protected function fetchKeys();
提取的持久性数据存储的数据键。
getData()
方法
public array getData(boolean $refresh=false)
| ||
$refresh | boolean | 数据是否可以再次从持久性存储中取出。 |
{return} | array | 返回当前可用的数据提供者的列表。 |
public function getData($refresh=false)
{
if($this->_data===null || $refresh)
$this->_data=$this->fetchData();
return $this->_data;
}
返回当前可用的数据项。
getId()
方法
public string getId()
| ||
{return} | string | 所有数据提供者的唯一标识ID。 |
public function getId()
{
return $this->_id;
}
返回所有数据提供者的唯一标识ID。
getItemCount()
方法
public integer getItemCount(boolean $refresh=false)
| ||
$refresh | boolean | 键是否可被再次计算。 |
{return} | integer | 当前页面中的数据项数目。 |
public function getItemCount($refresh=false)
{
return count($this->getData($refresh));
}
返回当前页面的数据项数目。
和count($provider->getData())
的结果相同。
当pagination为false时,返回和totalItemCount相等的值。
getKeys()
方法
public array getKeys(boolean $refresh=false)
| ||
$refresh | boolean | 键是否可被再次计算。 |
{return} | array | 与data对应的键的列表。每个在data 的数据项都有一个唯一的键。 |
public function getKeys($refresh=false)
{
if($this->_keys===null || $refresh)
$this->_keys=$this->fetchKeys();
return $this->_keys;
}
返回相关数据项的键。
getPagination()
方法
public CPagination getPagination()
| ||
{return} | CPagination | pagination对象。当值为false时,表示禁用分页。 |
public function getPagination()
{
if($this->_pagination===null)
{
$this->_pagination=new CPagination;
if(($id=$this->getId())!='')
$this->_pagination->pageVar=$id.'_page';
}
return $this->_pagination;
}
返回pagination对象。
getSort()
方法
public CSort getSort()
| ||
{return} | CSort | sort对象。为false时,表示禁用排序。 |
public function getSort()
{
if($this->_sort===null)
{
$this->_sort=new CSort;
if(($id=$this->getId())!='')
$this->_sort->sortVar=$id.'_sort';
}
return $this->_sort;
}
返回sort对象。
getTotalItemCount()
方法
public integer getTotalItemCount(boolean $refresh=false)
| ||
$refresh | boolean | 所有数据项是否可被再次计算。 |
{return} | integer | 所有数据项的的数目。 |
public function getTotalItemCount($refresh=false)
{
if($this->_totalItemCount===null || $refresh)
$this->_totalItemCount=$this->calculateTotalItemCount();
return $this->_totalItemCount;
}
返回所有数据项的总数。 当pagination为false时,返回的值与itemCount相等。
setData()
方法
public void setData(array $value)
| ||
$value | array | 将数据项放到provider中。 |
public function setData($value)
{
$this->_data=$value;
}
为provider设置数据项。
setId()
方法
public void setId(string $value)
| ||
$value | string | 所有数据项provider的唯一标识ID。 |
public function setId($value)
{
$this->_id=$value;
}
设置provider的ID。
setKeys()
方法
public void setKeys(array $value)
| ||
$value | array | 设置provider数据项的键。 |
public function setKeys($value)
{
$this->_keys=$value;
}
为provider设置数据项的键。
setPagination()
方法
public void setPagination(mixed $value)
| ||
$value | mixed | 此pagination被provider使用。值为CPagination对象或配置 pagination对象的数组。如果值为false,表示禁用分页。 |
public function setPagination($value)
{
if(is_array($value))
{
$pagination=$this->getPagination();
foreach($value as $k=>$v)
$pagination->$k=$v;
}
else
$this->_pagination=$value;
}
设置provider的pagination对象。
setSort()
方法
public void setSort(mixed $value)
| ||
$value | mixed | 此排序被数据提供者使用。值为CSort对象或配置排序对象的数组。 如果值为false,表示禁用排序。 |
public function setSort($value)
{
if(is_array($value))
{
$sort=$this->getSort();
foreach($value as $k=>$v)
$sort->$k=$v;
}
else
$this->_sort=$value;
}
为数据提供者设置排序。
setTotalItemCount()
方法
(可用自 v1.1.1)
public void setTotalItemCount(integer $value)
| ||
$value | integer | 数据项的总数。 |
public function setTotalItemCount($value)
{
$this->_totalItemCount=$value;
}
设置所有数据项的总数。 此方法在calculateTotalItemCount不能计算时使用。