CFormButtonElement
包 | system.web.form |
---|---|
继承 | class CFormButtonElement » CFormElement » CComponent |
可用自 | 1.1 |
源码 | framework/web/form/CFormButtonElement.php |
CFormButtonElement can represent the following types of button based on type property:
- htmlButton: a normal button generated using CHtml::htmlButton
- htmlReset a reset button generated using CHtml::htmlButton
- htmlSubmit: a submit button generated using CHtml::htmlButton
- submit: a submit button generated using CHtml::submitButton
- button: a normal button generated using CHtml::button
- image: an image button generated using CHtml::imageButton
- reset: a reset button generated using CHtml::resetButton
- link: a link button generated using CHtml::linkButton
Because CFormElement is an ancestor class of CFormButtonElement, a value assigned to a non-existing property will be stored in attributes which will be passed as HTML attribute values to the CHtml method generating the button or initial values of the widget properties.
公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
attributes | array | list of attributes (name=>value) for the HTML element represented by this object. | CFormElement |
coreTypes | array | Core button types (alias=>CHtml method name) | CFormButtonElement |
label | string | the label of this button. | CFormButtonElement |
name | string | name of this button | CFormButtonElement |
on | string | Returns a value indicating under which scenarios this button is visible. | CFormButtonElement |
parent | mixed | the direct parent of this element. | CFormElement |
type | string | the type of this button. | CFormButtonElement |
visible | boolean | Returns a value indicating whether this element is visible and should be rendered. | CFormElement |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__construct() | Constructor. | CFormElement |
__get() | Returns a property value or an attribute value. | CFormElement |
__isset() | Checks a property value or an attribute value on existence or not null | CFormElement |
__set() | Sets value of a property or attribute. | CFormElement |
__toString() | Converts the object to a string. | CFormElement |
__unset() | Sets a component property to be null. | CComponent |
asa() | Returns the named behavior object. | CComponent |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
configure() | Configures this object with property initial values. | CFormElement |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getOn() | Returns a value indicating under which scenarios this button is visible. | CFormButtonElement |
getParent() | Returns the direct parent of this element. This could be either a CForm object or a CBaseController object (a controller or a widget). | CFormElement |
getVisible() | Returns a value indicating whether this element is visible and should be rendered. | CFormElement |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
raiseEvent() | Raises an event. | CComponent |
render() | Returns this button. | CFormButtonElement |
setOn() | Sets scenario names separated by commas. | CFormButtonElement |
setVisible() | Sets whether this element is visible and should be rendered. | CFormElement |
受保护的方法
方法 | 描述 | 被定义在 |
---|---|---|
evaluateVisible() | Evaluates the visibility of this element. | CFormButtonElement |
属性详情
Core button types (alias=>CHtml method name)
the label of this button. This property is ignored when a widget is used to generate the button.
name of this button
Returns a value indicating under which scenarios this button is visible. If the value is empty, it means the button is visible under all scenarios. Otherwise, only when the model is in the scenario whose name can be found in this value, will the button be visible. See CModel::scenario for more information about model scenarios.
the type of this button. This can be a class name, a path alias of a class name, or a button type alias (submit, button, image, reset, link, htmlButton, htmlSubmit, htmlReset).
方法详情
protected boolean evaluateVisible()
| ||
{return} | boolean | whether this element is visible. |
protected function evaluateVisible()
{
return empty($this->_on) || in_array($this->getParent()->getModel()->getScenario(),$this->_on);
}
Evaluates the visibility of this element. This method will check the on property to see if the model is in a scenario that should have this string displayed.
public string getOn()
| ||
{return} | string | scenario names separated by commas. Defaults to null. |
Returns a value indicating under which scenarios this button is visible. If the value is empty, it means the button is visible under all scenarios. Otherwise, only when the model is in the scenario whose name can be found in this value, will the button be visible. See CModel::scenario for more information about model scenarios.
public string render()
| ||
{return} | string | the rendering result |
public function render()
{
$attributes=$this->attributes;
if(isset(self::$coreTypes[$this->type]))
{
$method=self::$coreTypes[$this->type];
if($method==='linkButton')
{
if(!isset($attributes['params'][$this->name]))
$attributes['params'][$this->name]=1;
}
elseif($method==='htmlButton')
{
$attributes['type']=$this->type==='htmlSubmit' ? 'submit' : ($this->type==='htmlReset' ? 'reset' : 'button');
$attributes['name']=$this->name;
}
else
$attributes['name']=$this->name;
if($method==='imageButton')
return CHtml::imageButton(isset($attributes['src']) ? $attributes['src'] : '',$attributes);
else
return CHtml::$method($this->label,$attributes);
}
else
{
$attributes['name']=$this->name;
ob_start();
$this->getParent()->getOwner()->widget($this->type, $attributes);
return ob_get_clean();
}
}
Returns this button.
public void setOn(string $value)
| ||
$value | string | scenario names separated by commas. |
public function setOn($value)
{
$this->_on=preg_split('/[\s,]+/',$value,-1,PREG_SPLIT_NO_EMPTY);
}