From 4d8ed423f7b4a8eae2898cc5552829595717a581 Mon Sep 17 00:00:00 2001 From: xue <> Date: Mon, 2 Jan 2006 20:59:17 +0000 Subject: TCheckBoxList and TRadioButtonList completed. --- framework/Web/UI/WebControls/TCheckBoxList.php | 49 +++++++++++++++++++++----- 1 file changed, 41 insertions(+), 8 deletions(-) (limited to 'framework/Web/UI/WebControls/TCheckBoxList.php') diff --git a/framework/Web/UI/WebControls/TCheckBoxList.php b/framework/Web/UI/WebControls/TCheckBoxList.php index c4addcdd..f351acba 100644 --- a/framework/Web/UI/WebControls/TCheckBoxList.php +++ b/framework/Web/UI/WebControls/TCheckBoxList.php @@ -6,6 +6,7 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont { private $_repeatedControl; private $_isEnabled; + private $_changedEventRaised=false; public function __construct() { @@ -154,14 +155,6 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont $this->getStyle()->setCellPadding($value); } - public function loadPostData($key,$values) - { - } - - public function raisePostDataChangedEvent() - { - } - public function getHasHeader() { return false; @@ -200,10 +193,50 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont $this->_repeatedControl->setID("$index"); $this->_repeatedControl->setText($item->getText()); $this->_repeatedControl->setChecked($item->getSelected()); + $this->_repeatedControl->setAttribute('value',$item->getValue()); $this->_repeatedControl->setEnabled($this->_isEnabled && $item->getEnabled()); $this->_repeatedControl->renderControl($writer); } + public function loadPostData($key,$values) + { + if($this->getEnabled(true)) + { + $index=(int)substr($key,strlen($this->getUniqueID())+1); + $this->ensureDataBound(); + if($index>=0 && $index<$this->getRepeatedItemCount()) + { + $item=$this->getItems()->itemAt($index); + if($item->getEnabled()) + { + $checked=isset($values[$key]); + if($item->getSelected()!=$checked) + { + $item->setSelected($checked); + if(!$this->_changedEventRaised) + { + $this->_changedEventRaised=true; + return true; + } + } + } + } + } + return false; + } + + public function raisePostDataChangedEvent() + { + $page=$this->getPage(); + if($this->getAutoPostBack() && !$page->getPostBackEventTarget()) + { + $page->setPostBackEventTarget($this); + if($this->getCausesValidation()) + $page->validate($this->getValidationGroup()); + } + $this->onSelectedIndexChanged(null); + } + protected function onPreRender($param) { parent::onPreRender($param); -- cgit v1.2.3