From c9d52efd6cea119b228cdf4a5679463e06f98b50 Mon Sep 17 00:00:00 2001 From: xue <> Date: Wed, 5 Jul 2006 12:01:06 +0000 Subject: Fixed a bug about applyItemStyles in TDataList. --- framework/Web/UI/WebControls/TClientScript.php | 54 +++++++++++++------------- framework/Web/UI/WebControls/TDataList.php | 4 +- 2 files changed, 29 insertions(+), 29 deletions(-) (limited to 'framework/Web') diff --git a/framework/Web/UI/WebControls/TClientScript.php b/framework/Web/UI/WebControls/TClientScript.php index abc23c45..1b8c78ea 100644 --- a/framework/Web/UI/WebControls/TClientScript.php +++ b/framework/Web/UI/WebControls/TClientScript.php @@ -13,29 +13,29 @@ /** * TClientScript class * - * Allows importing of Prado Client Scripts from template via the - * {@link setUsingPradoScripts UsingPradoScripts} property. Multiple Prado + * Allows importing of Prado Client Scripts from template via the + * {@link setPradoScripts PradoScripts} property. Multiple Prado * client-scripts can be specified using comma delimited string of the * javascript library to include on the page. For example, - * + * * - * + * * - * + * * Custom javascript files can be register using the {@link setScriptUrl ScriptUrl} - * property. + * property. * * /> * - * + * * Contents within TClientScript will be treated as javascript code and will be * rendered in place. - * + * * The {@link setPreRenderControlTypes PreRenderControlTypes} property can * be used to specify that controls type/class names that should pre-render itself * even though they may not be rendered on the page. This is useful to publish * controls that require assets and is only visible after a callback response. - * + * * @author Wei Zhuo * @version $Revision: $ $Date: $ * @package System.Web.UI.WebControls @@ -47,24 +47,24 @@ class TClientScript extends TControl * @return string comma delimited list of javascript libraries to included * on the page. */ - public function getUsingPradoScripts() + public function getPradoScripts() { return $this->getViewState('PradoScripts', ''); } - + /** * Include javascript library to the current page. The current supported * libraries are: "prado", "effects", "ajax", "validator", "logger", * "datepicker", "rico", "colorpicker". Library dependencies are * automatically resolved. - * + * * @param string comma delimited list of javascript libraries to include. */ - public function setUsingPradoScripts($value) + public function setPradoScripts($value) { $this->setViewState('PradoScripts', $value, ''); } - + /** * @return string custom javascript file url. */ @@ -72,7 +72,7 @@ class TClientScript extends TControl { return $this->getViewState('ScriptUrl', ''); } - + /** * @param string custom javascript file url. */ @@ -80,16 +80,16 @@ class TClientScript extends TControl { $this->setViewState('ScriptUrl', $value, ''); } - + /** - * @param string comma delimited list of controls that wish to be prerendered + * @param string comma delimited list of controls that wish to be prerendered * so as to publish its assets. */ public function setPreRenderControlTypes($value) { $this->setViewState('PreRenderControls', $value); } - + /** * @return string comma delimited list of controls types that require prerendering. */ @@ -106,20 +106,19 @@ class TClientScript extends TControl public function onPreRender($param) { parent::onPreRender($param); - $scripts = preg_split('/,|\s+/', $this->getUsingPradoScripts()); + $scripts = preg_split('/,|\s+/', $this->getPradoScripts()); $cs = $this->getPage()->getClientScript(); foreach($scripts as $script) { - $script = trim($script); - if(strlen($script) > 0) + if(($script = trim($script))!=='') $cs->registerPradoScript($script); } $this->preRenderControls($param); } - + /** * Renders the body content as javascript block. - * Overrides parent implementation, parent renderChildren method is called during + * Overrides parent implementation, parent renderChildren method is called during * {@link registerCustomScript}. * @param THtmlWriter the renderer */ @@ -128,15 +127,14 @@ class TClientScript extends TControl $this->renderCustomScriptFile($writer); $this->renderCustomScript($writer); } - + /** * Renders the custom script file. * @param THtmLWriter the renderer */ protected function renderCustomScriptFile($writer) { - $scriptUrl = $this->getScriptUrl(); - if(strlen($scriptUrl) > 0) + if(($scriptUrl = $this->getScriptUrl())!=='') $writer->write("\n"); } @@ -153,7 +151,7 @@ class TClientScript extends TControl $writer->write("\n/*]]>*/\n\n"); } } - + /** * PreRender other controls to allow them to publish their assets. Useful * when callback response components that require assets to be present on the page. @@ -170,7 +168,7 @@ class TClientScript extends TControl $control->setPage($this->getPage()); $control->onPreRender($param); } - } + } } } diff --git a/framework/Web/UI/WebControls/TDataList.php b/framework/Web/UI/WebControls/TDataList.php index 48392b1d..2c562d6d 100644 --- a/framework/Web/UI/WebControls/TDataList.php +++ b/framework/Web/UI/WebControls/TDataList.php @@ -960,6 +960,8 @@ class TDataList extends TBaseDataList implements INamingContainer, IRepeatInfoUs foreach($this->getControls() as $index=>$item) { + if(!($item instanceof TDataListItem)) + continue; switch($item->getItemType()) { case 'Header': @@ -1112,9 +1114,9 @@ class TDataList extends TBaseDataList implements INamingContainer, IRepeatInfoUs $items=$this->getItems(); $selectedIndex=$this->getSelectedItemIndex(); $editIndex=$this->getEditItemIndex(); + $hasSeparator=$this->_separatorTemplate!==null; if($this->_headerTemplate!==null) $this->_header=$this->createItemInternal(-1,'Header',false,null); - $hasSeparator=$this->_separatorTemplate!==null; for($i=0;$i<$itemCount;++$i) { if($hasSeparator && $i>0) -- cgit v1.2.3