包 | system.web.form |
---|---|
继承 | abstract class CFormElement » CComponent |
子类 | CForm, CFormButtonElement, CFormInputElement, CFormStringElement |
源自 | 1.1 |
版本 | $Id: CFormElement.php 3426 2011-10-25 00:01:09Z alexander.makarow $ |
源码 |
CFormElement 是各种表单元素的基类。
CFormElement 实现了获取和设置任意的属性的方法。
CFormElement 实现了获取和设置任意的属性的方法。
公共属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
attributes | array | 通过这个对象来表现HTML元素的属性列表(name=>value)。 | CFormElement |
parent | mixed | 这个元素的真系父类。它可能是CForm对象,也可能是CBaseController对象。 (控制器或挂件)。 | CFormElement |
visible | boolean | 返回值说明这个元素是否可见并需要渲染。 | CFormElement |
公共方法
方法 | 描述 | 定义在 |
---|---|---|
__call() | 如果类中没有调的方法名,则调用这个方法。 | CComponent |
__construct() | 构造器。 | CFormElement |
__get() | 返回属性值。 | CFormElement |
__isset() | 检查一个属性是否为null。 | CComponent |
__set() | 设置属性值。 | CFormElement |
__toString() | 将对象转换为字符串。 | CFormElement |
__unset() | 设置一个组件的属性为null。 | CComponent |
asa() | 返回这个名字的行为对象。 | CComponent |
attachBehavior() | 附加一个行为到组件。 | CComponent |
attachBehaviors() | 附加一个行为列表到组件。 | CComponent |
attachEventHandler() | 为事件附加一个事件处理程序。 | CComponent |
canGetProperty() | 确定属性是否可读。 | CComponent |
canSetProperty() | 确定属性是否可写。 | CComponent |
configure() | 根据初始化的值来配置这个对象。 | CFormElement |
detachBehavior() | 从组件中分离一个行为。 | CComponent |
detachBehaviors() | 从组件中分离所有行为。 | CComponent |
detachEventHandler() | 分离一个存在的事件处理程序。 | CComponent |
disableBehavior() | 禁用一个附加行为。 | CComponent |
disableBehaviors() | 禁用组件附加的所有行为。 | CComponent |
enableBehavior() | 启用一个附加行为。 | CComponent |
enableBehaviors() | 启用组件附加的所有行为。 | CComponent |
evaLuateExpression() | 计算一个PHP表达式,或根据组件上下文执行回调。 | CComponent |
getEventHandlers() | 返回一个事件的附加处理程序列表。 | CComponent |
getParent() | 返回这个元素的真系父类。它可能是CForm对象,也可能是CBaseController对象。 (控制器或挂件)。 | CFormElement |
getVisible() | 返回值说明这个元素是否可见并需要渲染。 | CFormElement |
hasEvent() | 确定一个事件是否定义。 | CComponent |
hasEventHandler() | 检查事件是否有附加的处理程序。 | CComponent |
hasProperty() | 确定属性是否被定义。 | CComponent |
raiseEvent() | 发起一个事件。 | CComponent |
render() | 渲染这个元素。 | CFormElement |
setVisible() | 设置这个元素是否可见并需要渲染。 | CFormElement |
受保护方法
方法 | 描述 | 定义在 |
---|---|---|
evaluateVisible() | 评估这个元素是否可见。 | CFormElement |
属性详细
attributes
属性
public array $attributes;
通过这个对象来表现HTML元素的属性列表(name=>value)。
parent
属性
只读
public mixed getParent()
这个元素的真系父类。它可能是CForm对象,也可能是CBaseController对象。 (控制器或挂件)。
visible
属性
public boolean getVisible()
public void setVisible(boolean $value)
public void setVisible(boolean $value)
返回值说明这个元素是否可见并需要渲染。 这个方法将调用evaluateVisible来确定这个元素是否可见。
方法详细
__construct()
方法
public void __construct(mixed $config, mixed $parent)
| ||
$config | mixed | 这个元素的配置。 |
$parent | mixed | 这个元素的真系父类。 |
public function __construct($config,$parent)
{
$this->configure($config);
$this->_parent=$parent;
}
构造器。
参见
- configure
__get()
方法
public mixed __get(string $name)
| ||
$name | string | 属性名 |
{return} | mixed | 属性值 |
public function __get($name)
{
$getter='get'.$name;
if(method_exists($this,$getter))
return $this->$getter();
else if(isset($this->attributes[$name]))
return $this->attributes[$name];
else
throw new CException(Yii::t('yii','Property "{class}.{property}" is not defined.',
array('{class}'=>get_class($this), '{property}'=>$name)));
}
返回属性值。 不要调用这个方法。这是一个被我们覆盖了的PHP的魔术方法, 它允许如下语法来读取属性值:
$value=$element->propertyName; $value=$element->attributeName;
参见
- __set
__set()
方法
public void __set(string $name, mixed $value)
| ||
$name | string | 属性名 |
$value | mixed | 属性值 |
public function __set($name,$value)
{
$setter='set'.$name;
if(method_exists($this,$setter))
$this->$setter($value);
else
$this->attributes[$name]=$value;
}
设置属性值。 不要调用这个方法。这是一个被我们覆盖的PHP的魔术方法, 允许用如下语法设置一个属性的值。
$this->propertyName=$value; $this->attributeName=$value;
参见
- __get
__toString()
方法
public string __toString()
| ||
{return} | string | 代表这个实体的字符串。 |
public function __toString()
{
return $this->render();
}
将对象转换为字符串。 这是一个PHP的魔术方法。 默认实现是调用render 返回渲染结果。
configure()
方法
public void configure(mixed $config)
| ||
$config | mixed | 这个对象的配置。 它可以是表示属性名和它们的初始化值的数组。 它也可以是能够返回一个配置数组的文件名It 或PHP脚本。 |
public function configure($config)
{
if(is_string($config))
$config=require(Yii::getPathOfAlias($config).'.php');
if(is_array($config))
{
foreach($config as $name=>$value)
$this->$name=$value;
}
}
根据初始化的值来配置这个对象。
evaluateVisible()
方法
protected boolean evaluateVisible()
| ||
{return} | boolean | 这个元素是否可见。默认为true。 |
protected function evaluateVisible()
{
return true;
}
评估这个元素是否可见。 子类应该覆盖这个方法来实现真实的算法 来确定元素的可见性。
getParent()
方法
public mixed getParent()
| ||
{return} | mixed | 这个元素的真系父类。它可能是CForm对象,也可能是CBaseController对象。 (控制器或挂件)。 |
public function getParent()
{
return $this->_parent;
}
getVisible()
方法
public boolean getVisible()
| ||
{return} | boolean | 这个元素是否可见并需要渲染。 |
public function getVisible()
{
if($this->_visible===null)
$this->_visible=$this->evaluateVisible();
return $this->_visible;
}
返回值说明这个元素是否可见并需要渲染。 这个方法将调用evaluateVisible来确定这个元素是否可见。
render()
方法
abstract public string render()
| ||
{return} | string | 渲染结果 |
abstract function render();
渲染这个元素。
setVisible()
方法
public void setVisible(boolean $value)
| ||
$value | boolean | 这个元素是否可见并需要渲染。 |
public function setVisible($value)
{
$this->_visible=$value;
}