From f884ea21ea8f0c6ced02565bd647a5692f82aea4 Mon Sep 17 00:00:00 2001 From: xue <> Date: Wed, 25 Jan 2006 04:26:27 +0000 Subject: Added validation demo for TListBox. Fixed a few autopostback with causesvalidation problems. --- framework/Web/UI/WebControls/TCheckBoxList.php | 9 ++------- framework/Web/UI/WebControls/TDropDownList.php | 9 ++------- framework/Web/UI/WebControls/TListBox.php | 21 +++++++++++++-------- 3 files changed, 17 insertions(+), 22 deletions(-) (limited to 'framework') diff --git a/framework/Web/UI/WebControls/TCheckBoxList.php b/framework/Web/UI/WebControls/TCheckBoxList.php index 168c7ef0..34ff005f 100644 --- a/framework/Web/UI/WebControls/TCheckBoxList.php +++ b/framework/Web/UI/WebControls/TCheckBoxList.php @@ -328,13 +328,8 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont */ 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->onSelectedIndexChanged(null); } diff --git a/framework/Web/UI/WebControls/TDropDownList.php b/framework/Web/UI/WebControls/TDropDownList.php index 3c459057..a3c02c15 100644 --- a/framework/Web/UI/WebControls/TDropDownList.php +++ b/framework/Web/UI/WebControls/TDropDownList.php @@ -72,13 +72,8 @@ class TDropDownList extends TListControl implements IPostBackDataHandler */ 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->onSelectedIndexChanged(null); } diff --git a/framework/Web/UI/WebControls/TListBox.php b/framework/Web/UI/WebControls/TListBox.php index 47165c99..50cf3873 100644 --- a/framework/Web/UI/WebControls/TListBox.php +++ b/framework/Web/UI/WebControls/TListBox.php @@ -29,7 +29,7 @@ Prado::using('System.Web.UI.WebControls.TListControl'); * @package System.Web.UI.WebControls * @since 3.0 */ -class TListBox extends TListControl implements IPostBackDataHandler +class TListBox extends TListControl implements IPostBackDataHandler, IValidatable { /** * Adds attribute name-value pairs to renderer. @@ -131,13 +131,8 @@ class TListBox extends TListControl implements IPostBackDataHandler */ 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->onSelectedIndexChanged(null); } @@ -184,5 +179,15 @@ class TListBox extends TListControl implements IPostBackDataHandler { $this->setViewState('SelectionMode',TPropertyValue::ensureEnum($value,array('Single','Multiple')),'Single'); } + + /** + * Returns the value to be validated. + * This methid is required by IValidatable interface. + * @return mixed the value of the property to be validated. + */ + public function getValidationPropertyValue() + { + return $this->getSelectedValue(); + } } ?> \ No newline at end of file -- cgit v1.2.3