diff options
Diffstat (limited to 'framework/Web/UI')
| -rw-r--r-- | framework/Web/UI/ActiveControls/TCallbackClientScript.php | 20 | ||||
| -rw-r--r-- | framework/Web/UI/WebControls/TClientScript.php | 13 | 
2 files changed, 30 insertions, 3 deletions
| diff --git a/framework/Web/UI/ActiveControls/TCallbackClientScript.php b/framework/Web/UI/ActiveControls/TCallbackClientScript.php index 453824db..ecc213f5 100644 --- a/framework/Web/UI/ActiveControls/TCallbackClientScript.php +++ b/framework/Web/UI/ActiveControls/TCallbackClientScript.php @@ -434,6 +434,26 @@ class TCallbackClientScript extends TApplicationComponent  	}
  	/**
 +	 * Appends a block of inline javascript enclosed in a boundary.
 +	 * Similar to to evaluateScript(), but functions declared in the
 +	 * inline block will be available to page elements.
 +	 * @param THtmlWriter writer for the content.
 +	 */
 +	public function appendScriptBlock($content)
 +	{
 +		if($content instanceof TControl)
 +		{
 +			$boundary = $this->getRenderedContentBoundary($content);
 +		}
 +		else if($content instanceof THtmlWriter)
 +		{
 +			$boundary = $this->getResponseContentBoundary($content);
 +		}
 +		
 +		$this->callClientFunction('Prado.Element.appendScriptBlock', array($boundary));
 +	}
 +
 +	/**
  	 * Renders the control and return the content boundary from
  	 * TCallbackResponseWriter. This method should only be used by framework
  	 * component developers. The render() method is defered to be called in the
 diff --git a/framework/Web/UI/WebControls/TClientScript.php b/framework/Web/UI/WebControls/TClientScript.php index 325105bc..4736df0e 100644 --- a/framework/Web/UI/WebControls/TClientScript.php +++ b/framework/Web/UI/WebControls/TClientScript.php @@ -132,9 +132,16 @@ class TClientScript extends TControl  	{
  		if($this->getHasControls())
  		{
 -			$writer->write("<script type=\"text/javascript\">\n/*<![CDATA[*/\n");
 -			$this->renderChildren($writer);
 -			$writer->write("\n/*]]>*/\n</script>\n");
 +			if($this->getPage()->getIsCallback())
 +			{
 +				$extWriter= $this->getPage()->getResponse()->createHtmlWriter();
 +				$this->renderChildren($extWriter);
 +				$this->getPage()->getCallbackClient()->appendScriptBlock($extWriter);
 +			} else {
 +				$writer->write("<script type=\"text/javascript\">\n/*<![CDATA[*/\n");
 +				$this->renderChildren($writer);
 +				$writer->write("\n/*]]>*/\n</script>\n");
 +			}
  		}
  	}
  }
 | 
