diff options
| -rw-r--r-- | framework/Web/Javascripts/source/prado/validator/validation3.js | 4 | ||||
| -rw-r--r-- | framework/Web/UI/WebControls/TCheckBoxList.php | 34 | 
2 files changed, 31 insertions, 7 deletions
| diff --git a/framework/Web/Javascripts/source/prado/validator/validation3.js b/framework/Web/Javascripts/source/prado/validator/validation3.js index 44e175bd..cb6d58c5 100644 --- a/framework/Web/Javascripts/source/prado/validator/validation3.js +++ b/framework/Web/Javascripts/source/prado/validator/validation3.js @@ -607,10 +607,6 @@ Prado.WebUI.TBaseValidator.prototype =  		this.options = options;
  		this.control = $(options.ControlToValidate);
 -		if (!this.control && this.isListControlType()){
 -			this.control = $(options.ControlToValidate + '_c0').parentNode;
 -		}
 -
  		this.message = $(options.ID);
  		if(this.control && this.message)
  		{
 diff --git a/framework/Web/UI/WebControls/TCheckBoxList.php b/framework/Web/UI/WebControls/TCheckBoxList.php index d0f4c7ce..51b363ad 100644 --- a/framework/Web/UI/WebControls/TCheckBoxList.php +++ b/framework/Web/UI/WebControls/TCheckBoxList.php @@ -358,7 +358,27 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont  			$page->registerRequiresPostData($this->_repeatedControl);
  		}
  	}
 -
 + +	/** +	 * Wether the list should be rendered inside a span or not +	 *  +	 *@return boolean true if we need a span +	 */ +	protected function getSpanNeeded () +	{ +		if ($this->getRepeatLayout()===TRepeatLayout::Raw) +		{ +			$id=$this->getID(); +			// Check if we have a validator registered for this control +			foreach ($this->getPage()->getValidators() as $v) +			{ +				if ($v->getControlToValidate()===$id) +					return true; +			} +		} +		return false; +	} +	
  	/**
  	 * Renders the checkbox list control.
  	 * This method overrides the parent implementation.
 @@ -368,6 +388,11 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont  	{
  		if($this->getItemCount()>0)
  		{
 +			if ($needSpan=$this->getSpanNeeded()) +			{ +				$writer->addAttribute('id', $this->getClientId()); +				$writer->renderBeginTag('span'); +			}  			$this->_isEnabled=$this->getEnabled(true);
  			$repeatInfo=$this->getRepeatInfo();
  			$accessKey=$this->getAccessKey();
 @@ -379,7 +404,9 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont  			$this->setTabIndex(0);
  			$repeatInfo->renderRepeater($writer,$this);
  			$this->setAccessKey($accessKey);
 -			$this->setTabIndex($tabIndex);
 +			$this->setTabIndex($tabIndex); +			if ($needSpan) +				$writer->renderEndTag();
  		}
  		//checkbox skipped the client control script in addAttributesToRender
  		if($this->getEnabled(true)
 @@ -433,7 +460,8 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont  		$options['ListName'] = $this->getUniqueID();
  		$options['ItemCount'] = $this->getItemCount();
  		return $options;
 -	}
 +	} +	
  }
  ?>
\ No newline at end of file | 
