From 8315c49b766ae0ae4c6729f641f6c83c50636b6c Mon Sep 17 00:00:00 2001 From: xue <> Date: Tue, 24 Jan 2006 00:40:46 +0000 Subject: Fixed a few issues with TCheckBox about validator. --- framework/Web/UI/TPage.php | 2 ++ framework/Web/UI/TTemplateManager.php | 3 ++- framework/Web/UI/WebControls/TBaseValidator.php | 10 ++-------- framework/Web/UI/WebControls/TCheckBox.php | 9 ++------- framework/Web/UI/WebControls/TRequiredFieldValidator.php | 2 +- 5 files changed, 9 insertions(+), 17 deletions(-) (limited to 'framework/Web/UI') diff --git a/framework/Web/UI/TPage.php b/framework/Web/UI/TPage.php index 1dfc3b1e..53090e7f 100644 --- a/framework/Web/UI/TPage.php +++ b/framework/Web/UI/TPage.php @@ -288,8 +288,10 @@ class TPage extends TTemplateControl { Prado::trace("Page validate",'System.Web.UI.TPage'); foreach($this->_validators as $validator) + { if($validator->getValidationGroup()===$validationGroup) $validator->validate(); + } } } diff --git a/framework/Web/UI/TTemplateManager.php b/framework/Web/UI/TTemplateManager.php index 0205fb7f..07e27891 100644 --- a/framework/Web/UI/TTemplateManager.php +++ b/framework/Web/UI/TTemplateManager.php @@ -735,7 +735,8 @@ class TTemplate extends TComponent implements ITemplate throw new TTemplateParsingException('template_event_forbidden',$name); else { - if(!is_callable(array($className,'set'.$name))) + // id is still alowed for TComponent, even if id property doesn't exist + if(strcasecmp($name,'id')!==0 && !is_callable(array($className,'set'.$name))) { if(is_callable(array($className,'get'.$name))) throw new TTemplateParsingException('template_property_readonly',$name); diff --git a/framework/Web/UI/WebControls/TBaseValidator.php b/framework/Web/UI/WebControls/TBaseValidator.php index af8eb7e9..5110230b 100644 --- a/framework/Web/UI/WebControls/TBaseValidator.php +++ b/framework/Web/UI/WebControls/TBaseValidator.php @@ -154,7 +154,7 @@ abstract class TBaseValidator extends TLabel implements IValidator $scriptKey = "TBaseValidator:$formID"; if($this->getEnableClientScript() && !$scripts->isEndScriptRegistered($scriptKey)) { - $scripts->registerClientScript('validator'); + $scripts->registerClientScript('validator'); $scripts->registerEndScript($scriptKey, "Prado.Validation.AddForm('$formID');"); } if($this->getEnableClientScript()) @@ -361,13 +361,7 @@ abstract class TBaseValidator extends TLabel implements IValidator protected function getValidationValue($control) { if($control instanceof IValidatable) - { - $value=$control->getValidationPropertyValue(); - //if($value instanceof TListItem) - // return $value->getValue(); - //else - return TPropertyValue::ensureString($value); - } + return $control->getValidationPropertyValue(); else throw new TInvalidDataTypeException('basevalidator_validatable_required'); } diff --git a/framework/Web/UI/WebControls/TCheckBox.php b/framework/Web/UI/WebControls/TCheckBox.php index 47fabd20..98084009 100644 --- a/framework/Web/UI/WebControls/TCheckBox.php +++ b/framework/Web/UI/WebControls/TCheckBox.php @@ -76,13 +76,8 @@ class TCheckBox extends TWebControl implements IPostBackDataHandler, IValidatabl */ public function raisePostDataChangedEvent() { - $page=$this->getPage(); - if($this->getAutoPostBack() && !$page->getPostBackEventTarget()) - { - $page->setPostBackEventTarget($this); - if($this->getCausesValidation()) - $page->validate($this->getValidationGroup()); - } + if($this->getAutoPostBack() && $this->getCausesValidation()) + $this->getPage()->validate($this->getValidationGroup()); $this->onCheckedChanged(null); } diff --git a/framework/Web/UI/WebControls/TRequiredFieldValidator.php b/framework/Web/UI/WebControls/TRequiredFieldValidator.php index df6c2abf..702fc5d2 100644 --- a/framework/Web/UI/WebControls/TRequiredFieldValidator.php +++ b/framework/Web/UI/WebControls/TRequiredFieldValidator.php @@ -58,7 +58,7 @@ class TRequiredFieldValidator extends TBaseValidator protected function evaluateIsValid() { $value=$this->getValidationValue($this->getValidationTarget()); - return trim($value)!==trim($this->getInitialValue()); + return trim($value)!==trim($this->getInitialValue()) || (is_bool($value) && $value); } /** -- cgit v1.2.3