CJuiSliderInput
| 鍖 | zii.widgets.jui |
|---|---|
| 缁ф壙 | class CJuiSliderInput » CJuiInputWidget » CJuiWidget » CWidget » CBaseController » CComponent |
| 婧愯嚜 | 1.1 |
| 鐗堟湰 | $Id: CJuiSliderInput.php 2948 2011-02-09 13:27:05Z haertl.mike $ |
| 婧愮爜 | framework/zii/widgets/jui/CJuiSliderInput.php |
CJuiSliderInput鏄剧ず涓涓粦鍧椼傚畠鑳界敤鍦ㄨ〃鍗曚腑骞秔ost瀹冪殑鍊笺
CJuiSlider灏佽浜JUI slider鎻掍欢銆
浣跨敤杩欎釜閮ㄤ欢锛屼綘鍙互鍦ㄨ鍥鹃噷闈㈡彃鍏ヤ互涓嬩唬鐮侊細
杩欎釜閮ㄤ欢涔熷彲浣跨敤鑼冨洿鍐呯殑妯″紡锛屽畠浣跨敤2婊戝潡鏉ヨ缃寖鍥淬 鍦ㄨ繖绉嶆ā寮忎腑锛attribute鍜maxAttribute灏嗗畾涔夋渶澶у拰鏈灏忚寖鍥村笺 渚嬪锛
CJuiSlider灏佽浜JUI slider鎻掍欢銆
浣跨敤杩欎釜閮ㄤ欢锛屼綘鍙互鍦ㄨ鍥鹃噷闈㈡彃鍏ヤ互涓嬩唬鐮侊細
$this->widget('zii.widgets.jui.CJuiSliderInput', array(
'name'=>'rate',
'value'=>37,
// additional javascript options for the slider plugin
'options'=>array(
'min'=>10,
'max'=>50,
),
'htmlOptions'=>array(
'style'=>'height:20px;'
),
));
杩欎釜閮ㄤ欢涔熷彲浣跨敤鑼冨洿鍐呯殑妯″紡锛屽畠浣跨敤2婊戝潡鏉ヨ缃寖鍥淬 鍦ㄨ繖绉嶆ā寮忎腑锛attribute鍜maxAttribute灏嗗畾涔夋渶澶у拰鏈灏忚寖鍥村笺 渚嬪锛
$this->widget('zii.widgets.jui.CJuiSliderInput', array(
'model'=>$model,
'attribute'=>'timeMin',
'maxAttribute'=>'timeMax,
// additional javascript options for the slider plugin
'options'=>array(
'range'=>true,
'min'=>0,
'max'=>24,
),
));
濡傛灉浣犻渶瑕佷娇鐢╯lider浜嬩欢锛岃鏀瑰彉浜嬩欢鍊间负鈥榮top鈥欐垨鈥榗hange鈥欍
閫氳繃閰嶇疆options灞炴э紝
浣犲彲浠ユ寚瀹氶渶瑕佷紶閫掔粰JUI slider鎻掍欢鐨勯夐」銆
濡傛灉闇瑕侀夋嫨锛坣ame-value pairs锛夛紝
璇峰弬闃JUI slider璇存槑銆鍏叡灞炴
| 灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
|---|---|---|---|
| actionPrefix | string | actions鐨処D鐨勫墠缂銆 褰撳井浠跺湪CController::actions涓0鏄庝簡 鍔ㄤ綔鎻愪緵鑰咃紝鍙互涓哄叾鍔ㄤ綔鐨処D鎸囧畾鍓嶇紑浠ュ尯鍒 浜庡埆鐨勫井浠舵垨鎺у埗鍣ㄣ傚綋寰欢鐢ㄤ簬鎺у埗鍣 鐨勮鍥句腑鏃讹紝蹇呴』閰嶇疆鍚屾牱鐨勫墠缂銆 | CWidget |
| attribute | string | 鍜岃繖涓皬鐗╀欢鐩稿叧鐨勫睘鎬с 杩欎釜鍚嶇О鍙兘鍖呭惈涓嫭鍙凤紙渚嬪鈥榥ame[1]鈥欙級锛岀敤浜庢悳闆嗚〃鏍煎紡鐨勬暟鎹緭鍏ャ | CJuiInputWidget |
| controller | CController | 杩斿洖姝ゅ井浠舵墍灞炵殑鎺у埗鍣ㄣ | CWidget |
| cssFile | mixed | 涓婚鐨凜SS鏂囦欢鍚嶃傞粯璁ゆ槸鈥榡query-ui. | CJuiWidget |
| event | string | 浜嬩欢鐨勫悕绉帮紝杩欓噷input琚檮鍔犲埌slider銆 瀹冨彲鑳芥槸鈥榮lide鈥欙紝鈥榮top鈥欐垨鈥榗hange鈥欍傚鏋滀綘鎯充娇鐢ㄢ榮lide鈥欎簨浠讹紝鏀瑰彉$event灞炴у埌鈥榗hange鈥欍 | CJuiSliderInput |
| htmlOptions | array | JUI缁勪欢涓璈TML鏍囩鐨勫睘鎬ц缃 | CJuiWidget |
| id | string | 杩斿洖姝ゅ井浠剁殑ID銆傚鏋滈渶瑕佺殑璇濓紝灏嗙敓浜т竴涓柊鐨処D骞跺皢鍏惰繑鍥炪 | CWidget |
| maxAttribute | string | 濡傛灉slider琚敤鍦╮ange妯″紡锛屽睘鎬у悕鐨勬渶澶у笺 | CJuiSliderInput |
| model | CModel | 涓庤繖涓皬鐗╀欢鐩稿叧鐨勬暟鎹ā鍨 | CJuiInputWidget |
| name | string | 杈撳叆妗嗗悕绉般傚鏋model娌℃湁璁剧疆锛岃繖涓繀椤昏缃 | CJuiInputWidget |
| options | array | the 鍒濆鐨凧avaScript闇瑕佷紶閫掔粰JUI鎻掍欢鐨勯夐」銆 | CJuiWidget |
| owner | CBaseController | 杩斿洖姝ゅ井浠剁殑鎵鏈夎呮垨鍒涘缓鑰呫 | CWidget |
| scriptFile | mixed | 涓昏JUI鐨凧avaScript鐨勬枃浠跺悕銆傞粯璁ゆ槸鈥榡query-ui. | CJuiWidget |
| scriptUrl | string | 鍖呭惈鎵鏈塉UI JavaScript鏂囦欢鐨勬牴鐩綍銆 濡傛灉娌℃湁璁剧疆杩欎釜灞炴э紙榛樿锛夛紝Yii will publish the JUI package included in the zii release and use that to infer the root script URL. | CJuiWidget |
| skin | mixed | 寰欢浣跨敤鐨勭毊鑲ょ殑鍚嶇О銆傞粯璁や负鈥渄efault鈥濄 濡傛灉姝ゅ睘鎬ц缃负false锛屽井浠跺皢涓嶄細鏈夌毊鑲よ浣跨敤銆 | CWidget |
| tagName | string | 鍖呭惈slider鐨勫鍣ㄥ厓绱犲悕绉般傞粯璁ゆ槸鈥榙iv鈥欍 | CJuiSliderInput |
| theme | string | JUI涓婚鐨勫悕瀛椼傞粯璁ゆ槸鈥榖ase鈥欍傜‘淇濆湪themeUrl涓嬫湁杩欐牱涓涓洰褰曪紝 鍏跺悕绉版槸杩欎釜灞炴х殑鍊肩浉鍚岋紙鍖哄垎澶у皬鍐欙級銆 | CJuiWidget |
| themeUrl | string | 鍖呭惈鎵鏈塉UI鐨勪富棰樻枃浠跺す鐨勬牴鐩綍銆 濡傛灉娌℃湁璁剧疆杩欎釜灞炴э紙榛樿锛夛紝 Yii will publish the JUI package included in the zii release and use that to infer the root theme URL. | CJuiWidget |
| value | integer | 纭畾slider鐨勫硷紝濡傛灉浠呮湁涓涓簨浠跺鐞嗙▼搴忋傚鏋滆秴杩囦竴涓簨浠跺鐞嗙▼搴忥紝纭畾绗竴涓簨浠跺鐞嗙▼搴忕殑鍊笺 | CJuiSliderInput |
| viewPath | string | 杩斿洖鍖呭惈姝ゅ井浠舵墍闇鐨勮鍥炬枃浠剁殑璺緞銆 | CWidget |
鍏叡鏂规硶
| 鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
|---|---|---|
| __call() | 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 | CComponent |
| __construct() | 鏋勯犲櫒銆 | CWidget |
| __get() | 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 | CComponent |
| __isset() | 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 | CComponent |
| __set() | 璁剧疆涓涓粍浠剁殑灞炴у笺 | CComponent |
| __unset() | 璁剧疆涓涓粍浠剁殑灞炴т负null銆 | CComponent |
| actions() | 杩斿洖姝idget浣跨敤鐨勫姩浣滅殑鍒楄〃銆 | CWidget |
| asa() | 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° | CComponent |
| attachBehavior() | 闄勫姞涓涓涓哄埌缁勪欢銆 | CComponent |
| attachBehaviors() | 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 | CComponent |
| attachEventHandler() | 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 | CComponent |
| beginCache() | Begins fragment caching. | CBaseController |
| beginClip() | Begins recording a clip. | CBaseController |
| beginContent() | Begins the rendering of content that is to be decorated by the specified view. | CBaseController |
| beginWidget() | Creates a widget and executes it. | CBaseController |
| canGetProperty() | 纭畾灞炴ф槸鍚﹀彲璇汇 | CComponent |
| canSetProperty() | 纭畾灞炴ф槸鍚﹀彲鍐欍 | CComponent |
| createWidget() | Creates a widget and initializes it. | CBaseController |
| detachBehavior() | 浠庣粍浠朵腑鍒嗙涓涓涓恒 | CComponent |
| detachBehaviors() | 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 | CComponent |
| detachEventHandler() | 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 | CComponent |
| disableBehavior() | 绂佺敤涓涓檮鍔犺涓恒 | CComponent |
| disableBehaviors() | 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 | CComponent |
| enableBehavior() | 鍚敤涓涓檮鍔犺涓恒 | CComponent |
| enableBehaviors() | 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 | CComponent |
| endCache() | Ends fragment caching. | CBaseController |
| endClip() | Ends recording a clip. | CBaseController |
| endContent() | Ends the rendering of content. | CBaseController |
| endWidget() | Ends the execution of the named widget. | CBaseController |
| evaluateExpression() | 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 | CComponent |
| getController() | 杩斿洖姝ゅ井浠舵墍灞炵殑鎺у埗鍣ㄣ | CWidget |
| getEventHandlers() | 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 | CComponent |
| getId() | 杩斿洖姝ゅ井浠剁殑ID銆傚鏋滈渶瑕佺殑璇濓紝灏嗙敓浜т竴涓柊鐨処D骞跺皢鍏惰繑鍥炪 | CWidget |
| getOwner() | 杩斿洖姝ゅ井浠剁殑鎵鏈夎呮垨鍒涘缓鑰呫 | CWidget |
| getViewFile() | 鏍规嵁瑙嗗浘鍚嶆煡鎵捐鍥炬枃浠躲 | CWidget |
| getViewPath() | 杩斿洖鍖呭惈姝ゅ井浠舵墍闇鐨勮鍥炬枃浠剁殑璺緞銆 | CWidget |
| hasEvent() | 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 | CComponent |
| hasEventHandler() | 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 | CComponent |
| hasProperty() | 纭畾灞炴ф槸鍚﹁瀹氫箟銆 | CComponent |
| init() | 鍒濆鍖栬繖涓粍浠躲 | CJuiWidget |
| raiseEvent() | 鍙戣捣涓涓簨浠躲 | CComponent |
| render() | 娓叉煋涓涓鍥俱 | CWidget |
| renderFile() | Renders a view file. | CBaseController |
| renderInternal() | Renders a view file. | CBaseController |
| run() | 杩愯杩欎釜閮ㄤ欢銆 | CJuiSliderInput |
| setId() | 璁剧疆姝ゅ井浠剁殑ID銆 | CWidget |
| widget() | Creates a widget and executes it. | CBaseController |
鍙椾繚鎶ゆ柟娉
| 鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
|---|---|---|
| hasModel() | 纭畾鏄惁杩欎釜灏忕墿浠朵笌涓涓暟鎹ā鍨嬬浉鍏炽 | CJuiInputWidget |
| registerCoreScripts() | 娉ㄥ唽鏍稿績鐨勮剼鏈枃浠躲 | CJuiWidget |
| registerScriptFile() | 娉ㄥ唽涓涓狫avaScript鏂囦欢鍦scriptUrl涓嬨 | CJuiWidget |
| resolveNameID() | CJuiInputWidget | |
| resolvePackagePath() | 纭畾JUI鍖呭畨瑁呰矾寰勩 | CJuiWidget |
灞炴ц缁
event
灞炴
public string $event;
浜嬩欢鐨勫悕绉帮紝杩欓噷input琚檮鍔犲埌slider銆 瀹冨彲鑳芥槸鈥榮lide鈥欙紝鈥榮top鈥欐垨鈥榗hange鈥欍傚鏋滀綘鎯充娇鐢ㄢ榮lide鈥欎簨浠讹紝鏀瑰彉$event灞炴у埌鈥榗hange鈥欍
maxAttribute
灞炴
public string $maxAttribute;
濡傛灉slider琚敤鍦╮ange妯″紡锛屽睘鎬у悕鐨勬渶澶у笺
tagName
灞炴
public string $tagName;
鍖呭惈slider鐨勫鍣ㄥ厓绱犲悕绉般傞粯璁ゆ槸鈥榙iv鈥欍
value
灞炴
public integer $value;
纭畾slider鐨勫硷紝濡傛灉浠呮湁涓涓簨浠跺鐞嗙▼搴忋傚鏋滆秴杩囦竴涓簨浠跺鐞嗙▼搴忥紝纭畾绗竴涓簨浠跺鐞嗙▼搴忕殑鍊笺
鏂规硶璇︾粏
run()
鏂规硶
|
public void run()
|
婧愮爜锛 framework/zii/widgets/jui/CJuiSliderInput.php#90 (鏄剧ず)
public function run()
{
list($name,$id)=$this->resolveNameID();
$isRange=isset($this->options['range']) && $this->options['range'];
if(isset($this->htmlOptions['id']))
$id=$this->htmlOptions['id'];
else
$this->htmlOptions['id']=$id;
if(isset($this->htmlOptions['name']))
$name=$this->htmlOptions['name'];
if($this->hasModel())
{
$attribute=$this->attribute;
if ($isRange)
{
$options=$this->htmlOptions;
echo CHtml::activeHiddenField($this->model,$this->attribute,$options);
$options['id']=$options['id'].'_end';
echo CHtml::activeHiddenField($this->model,$this->maxAttribute,$options);
$attrMax=$this->maxAttribute;
$this->options['values']=array($this->model->$attribute,$this->model->$attrMax);
}
else
{
echo CHtml::activeHiddenField($this->model,$this->attribute,$this->htmlOptions);
$this->options['value']=$this->model->$attribute;
}
}
else
{
echo CHtml::hiddenField($name,$this->value,$this->htmlOptions);
if($this->value!==null)
$this->options['value']=$this->value;
}
$idHidden = $this->htmlOptions['id'];
$nameHidden = $name;
$this->htmlOptions['id']=$idHidden.'_slider';
$this->htmlOptions['name']=$nameHidden.'_slider';
echo CHtml::openTag($this->tagName,$this->htmlOptions);
echo CHtml::closeTag($this->tagName);
$this->options[$this->event]= $isRange ?
"js:function(e,ui){ v=ui.values; jQuery('#{$idHidden}').val(v[0]); jQuery('#{$idHidden}_end').val(v[1]); }":
'js:function(event, ui) { jQuery(\'#'. $idHidden .'\').val(ui.value); }';
$options=empty($this->options) ? '' : CJavaScript::encode($this->options);
$js = "jQuery('#{$id}_slider').slider($options);\n";
Yii::app()->getClientScript()->registerScript(__CLASS__.'#'.$id, $js);
}
杩愯杩欎釜閮ㄤ欢銆 杩欎釜鏂规硶娉ㄥ唽蹇呰鐨刯avascript骞舵覆鏌撶浉搴旂殑HTML浠g爜銆