From 0892b27e326f14bd3f6229b55077ef5f9d5280b4 Mon Sep 17 00:00:00 2001 From: "ctrlaltca@gmail.com" <> Date: Sat, 21 May 2011 18:14:36 +0000 Subject: branch/3.1: merged bugfixes from trunk/ up to current --- framework/Web/UI/WebControls/TTabPanel.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'framework/Web/UI/WebControls/TTabPanel.php') diff --git a/framework/Web/UI/WebControls/TTabPanel.php b/framework/Web/UI/WebControls/TTabPanel.php index 63710e56..e17008ba 100644 --- a/framework/Web/UI/WebControls/TTabPanel.php +++ b/framework/Web/UI/WebControls/TTabPanel.php @@ -412,7 +412,11 @@ class TTabPanel extends TWebControl implements IPostBackDataHandler $cs->registerPradoScript('tabpanel'); $code="new $className($options);"; $cs->registerEndScript("prado:$id", $code); - $cs->registerHiddenField($id.'_1',$this->getActiveViewIndex()); + // ensure an item is always active and visible + $index = $this->getActiveViewIndex(); + if(!$this->getViews()->itemAt($index)->Visible) + $index=0; + $cs->registerHiddenField($id.'_1', $index); $page->registerRequiresPostData($this); $page->registerRequiresPostData($id."_1"); } @@ -435,13 +439,16 @@ class TTabPanel extends TWebControl implements IPostBackDataHandler $options['ID']=$this->getClientID(); $options['ActiveCssClass']=$this->getActiveTabCssClass(); $options['NormalCssClass']=$this->getTabCssClass(); - $viewIDs=array(); + $views=''; foreach($this->getViews() as $view) { - if($view->getVisible()) - $viewIDs[]=$view->getClientID(); + if($views!='') + $views.=', '; + $views.= '"'.$view->getClientID().'":'.($view->getVisible() ? '1': '0' ); } - $options['Views']='[\''.implode('\',\'',$viewIDs).'\']'; + + $options['Views']='{'.$views.='}'; + $viewIDs=array(); return $options; } -- cgit v1.2.3