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
---
.../pages/ActiveControls/Samples/TActiveMultiView/Home.page | 4 ++--
framework/Web/UI/ActiveControls/TActiveMultiView.php | 6 ++++--
framework/Web/UI/WebControls/TMultiView.php | 6 +++---
3 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/demos/quickstart/protected/pages/ActiveControls/Samples/TActiveMultiView/Home.page b/demos/quickstart/protected/pages/ActiveControls/Samples/TActiveMultiView/Home.page
index 557f439e..deaaa187 100644
--- a/demos/quickstart/protected/pages/ActiveControls/Samples/TActiveMultiView/Home.page
+++ b/demos/quickstart/protected/pages/ActiveControls/Samples/TActiveMultiView/Home.page
@@ -9,7 +9,7 @@
-
+
View 2
@@ -29,7 +29,7 @@
-
+
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