From 91bb0070322f3cbde4c4600574dfb995ef4360e4 Mon Sep 17 00:00:00 2001 From: "ctrlaltca@gmail.com" <> Date: Mon, 31 Oct 2011 08:20:28 +0000 Subject: TActiveMultiView: don't render the clientiside if the active view did not change; fixed example in quickstart TMultiView: added missing parameter in error message --- framework/Web/UI/ActiveControls/TActiveMultiView.php | 6 ++++-- framework/Web/UI/WebControls/TMultiView.php | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'framework/Web/UI') diff --git a/framework/Web/UI/ActiveControls/TActiveMultiView.php b/framework/Web/UI/ActiveControls/TActiveMultiView.php index 5040ef94..5729634b 100644 --- a/framework/Web/UI/ActiveControls/TActiveMultiView.php +++ b/framework/Web/UI/ActiveControls/TActiveMultiView.php @@ -92,8 +92,9 @@ class TActiveMultiView extends TMultiView implements IActiveControl */ public function setActiveViewIndex($value) { + $old=parent::getActiveViewIndex(); parent::setActiveViewIndex($value); - if($this->getActiveControl()->canUpdateClientSide()) + if($this->getActiveControl()->canUpdateClientSide() && $old!=$value) $this->getPage()->getAdapter()->registerControlToRender($this,$this->getResponse()->createHtmlWriter()); } @@ -103,8 +104,9 @@ class TActiveMultiView extends TMultiView implements IActiveControl */ public function setActiveView($value) { + $old=parent::getActiveView(); parent::setActiveView($value); - if($this->getActiveControl()->canUpdateClientSide()) + if($this->getActiveControl()->canUpdateClientSide() && $old!=$value) $this->getPage()->getAdapter()->registerControlToRender($this,$this->getResponse()->createHtmlWriter()); } } diff --git a/framework/Web/UI/WebControls/TMultiView.php b/framework/Web/UI/WebControls/TMultiView.php index e7f5c12b..d9b2fb6f 100644 --- a/framework/Web/UI/WebControls/TMultiView.php +++ b/framework/Web/UI/WebControls/TMultiView.php @@ -4,7 +4,7 @@ * * @author Qiang Xue * @link http://www.pradosoft.com/ - * @copyright Copyright © 2005-2011 PradoSoft + * @copyright Copyright © 2005-2011 PradoSoft * @license http://www.pradosoft.com/license/ * @version $Id$ * @package System.Web.UI.WebControls @@ -229,14 +229,14 @@ class TMultiView extends TControl $this->setActiveViewIndex($index-1); return true; case self::CMD_SWITCHVIEWID: - $view=$this->findControl($param->getCommandParameter()); + $view=$this->findControl($viewID=$param->getCommandParameter()); if($view!==null && $view->getParent()===$this) { $this->setActiveView($view); return true; } else - throw new TInvalidDataValueException('multiview_viewid_invalid'); + throw new TInvalidDataValueException('multiview_viewid_invalid', $viewID); case self::CMD_SWITCHVIEWINDEX: $index=TPropertyValue::ensureInteger($param->getCommandParameter()); $this->setActiveViewIndex($index); -- cgit v1.2.3