QControlBase::CreatePersistent PHP Method

CreatePersistent() public static method

public static CreatePersistent ( $strClassName, $objParentObject, $strControlId )
    public static function CreatePersistent($strClassName, $objParentObject, $strControlId)
    {
        if ($objParentObject instanceof QForm) {
            $objForm = $objParentObject;
            $objParentControl = null;
        } else {
            if ($objParentObject instanceof QControl) {
                $objForm = $objParentObject->Form;
                $objParentControl = $objParentObject;
            } else {
                throw new QCallerException('Parent Object must be a QForm or QControl');
            }
        }
        if (array_key_exists($objForm->FormId . '_' . $strControlId, $_SESSION) && $_SESSION[$objForm->FormId . '_' . $strControlId]) {
            $objToReturn = unserialize($_SESSION[$objForm->FormId . '_' . $strControlId]);
            $objToReturn->objParentControl = $objParentControl;
            $objToReturn->objForm = $objForm;
            try {
                $objToReturn->objForm->AddControl($objToReturn);
                if ($objToReturn->objParentControl) {
                    $objToReturn->objParentControl->AddChildControl($objToReturn);
                }
            } catch (QCallerException $objExc) {
                $objExc->IncrementOffset();
                throw $objExc;
            }
        } else {
            $objToReturn = new $strClassName($objParentObject, $strControlId);
        }
        $objForm->PersistControl($objToReturn);
        return $objToReturn;
    }