diff options
-rw-r--r-- | framework/Web/UI/WebControls/TOutputCache.php | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/framework/Web/UI/WebControls/TOutputCache.php b/framework/Web/UI/WebControls/TOutputCache.php index 5e97a5d9..cb46b2f5 100644 --- a/framework/Web/UI/WebControls/TOutputCache.php +++ b/framework/Web/UI/WebControls/TOutputCache.php @@ -83,6 +83,7 @@ class TOutputCache extends TControl implements INamingContainer private $_varyByParam='';
private $_keyPrefix='';
private $_varyBySession=false;
+ private $_cachePostBack=false;
/**
* Returns a value indicating whether body contents are allowed for this control.
@@ -101,7 +102,7 @@ class TOutputCache extends TControl implements INamingContainer if(!$this->_cacheChecked)
{
$this->_cacheChecked=true;
- if(!$this->getPage()->getIsPostBack() && $this->_duration>0)
+ if($this->_duration>0 && ($this->_cachePostBack || !$this->getPage()->getIsPostBack()))
{
if($this->_cacheModuleID!=='')
{
@@ -405,6 +406,26 @@ class TOutputCache extends TControl implements INamingContainer }
/**
+ * @return boolean whether cached output will be used on postback requests. Defaults to false.
+ */
+ public function getCachingPostBack()
+ {
+ return $this->_cachePostBack;
+ }
+
+ /**
+ * Sets a value indicating whether cached output will be used on postback requests.
+ * By default, this is disabled. Be very cautious when enabling it.
+ * If the cached content including interactive user controls such as
+ * TTextBox, TDropDownList, your page may fail to render on postbacks.
+ * @param boolean whether cached output will be used on postback requests.
+ */
+ public function setCachingPostBack($value)
+ {
+ $this->_cachePostBack=TPropertyValue::ensureBoolean($value);
+ }
+
+ /**
* This event is raised when the output cache is checking cache dependency.
* An event handler may be written to check customized dependency conditions.
* The checking result should be saved by setting {@link TOutputCacheCheckDependencyEventParameter::setIsValid IsValid}
|