Prado\Web\UI\ActiveControls\TActivePageAdapter::renderResponse PHP Method

renderResponse() protected method

Renders the callback response by adding additional callback data and javascript actions in the header and page state if required.
protected renderResponse ( $writer )
    protected function renderResponse($writer)
    {
        Prado::trace("ActivePage renderResponse()", 'Prado\\Web\\UI\\ActiveControls\\TActivePageAdapter');
        //renders all the defered render() calls.
        foreach ($this->_controlsToRender as $rid => $forRender) {
            $forRender[0]->render($forRender[1]);
        }
        $response = $this->getResponse();
        //send response data in header
        if ($response->getHasAdapter()) {
            $responseData = $response->getAdapter()->getResponseData();
            if ($responseData !== null) {
                $data = TJavaScript::jsonEncode($responseData);
                $this->appendContentPart($response, self::CALLBACK_DATA_HEADER, $data);
            }
        }
        //sends page state in header
        if (($handler = $this->getCallbackEventTarget()) !== null) {
            if ($handler->getActiveControl()->getClientSide()->getEnablePageStateUpdate()) {
                $pagestate = $this->getPage()->getClientState();
                $this->appendContentPart($response, self::CALLBACK_PAGESTATE_HEADER, $pagestate);
            }
        }
        //safari must receive at least 1 byte of data.
        $writer->write(" ");
        //output the end javascript
        if ($this->getPage()->getClientScript()->hasEndScripts()) {
            $writer = $response->createHtmlWriter();
            $this->getPage()->getClientScript()->renderEndScriptsCallback($writer);
            $this->getPage()->getCallbackClient()->evaluateScript($writer);
        }
        //output the actions
        $executeJavascript = $this->getCallbackClientHandler()->getClientFunctionsToExecute();
        $actions = TJavaScript::jsonEncode($executeJavascript);
        $this->appendContentPart($response, self::CALLBACK_ACTION_HEADER, $actions);
        $cs = $this->Page->getClientScript();
        // collect all stylesheet file references
        $stylesheets = $cs->getStyleSheetUrls();
        if (count($stylesheets) > 0) {
            $this->appendContentPart($response, self::CALLBACK_STYLESHEETLIST_HEADER, TJavaScript::jsonEncode($stylesheets));
        }
        // collect all stylesheet snippets references
        $stylesheets = $cs->getStyleSheetCodes();
        if (count($stylesheets) > 0) {
            $this->appendContentPart($response, self::CALLBACK_STYLESHEET_HEADER, TJavaScript::jsonEncode($stylesheets));
        }
        // collect all script file references
        $scripts = $cs->getScriptUrls();
        if (count($scripts) > 0) {
            $this->appendContentPart($response, self::CALLBACK_SCRIPTLIST_HEADER, TJavaScript::jsonEncode($scripts));
        }
        // collect all hidden field references
        $fields = $cs->getHiddenFields();
        if (count($fields) > 0) {
            $this->appendContentPart($response, self::CALLBACK_HIDDENFIELDLIST_HEADER, TJavaScript::jsonEncode($fields));
        }
    }