diff options
Diffstat (limited to 'framework')
-rw-r--r-- | framework/Web/UI/TControl.php | 4 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TCheckBox.php | 14 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TCheckBoxList.php | 13 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TDropDownList.php | 14 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TFileUpload.php | 13 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/THiddenField.php | 14 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TImageButton.php | 12 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TListBox.php | 19 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TTextBox.php | 13 |
9 files changed, 108 insertions, 8 deletions
diff --git a/framework/Web/UI/TControl.php b/framework/Web/UI/TControl.php index 5a8824d3..987b5665 100644 --- a/framework/Web/UI/TControl.php +++ b/framework/Web/UI/TControl.php @@ -1925,6 +1925,10 @@ interface IPostBackDataHandler * indicating the control data is changed.
*/
public function raisePostDataChangedEvent();
+ /**
+ * @return boolean whether postback causes the data change. Defaults to false for non-postback state.
+ */
+ public function getDataChanged();
}
diff --git a/framework/Web/UI/WebControls/TCheckBox.php b/framework/Web/UI/WebControls/TCheckBox.php index bf2f9d05..7a0fc603 100644 --- a/framework/Web/UI/WebControls/TCheckBox.php +++ b/framework/Web/UI/WebControls/TCheckBox.php @@ -42,6 +42,8 @@ */
class TCheckBox extends TWebControl implements IPostBackDataHandler, IValidatable, IDataRenderer
{
+ private $_dataChanged=false;
+
/**
* @return string tag name of the button
*/
@@ -63,7 +65,7 @@ class TCheckBox extends TWebControl implements IPostBackDataHandler, IValidatabl if($newChecked=isset($values[$key]))
$this->setValue($values[$key]);
$this->setChecked($newChecked);
- return $newChecked!==$checked;
+ return $this->_dataChanged=($newChecked!==$checked);
}
/**
@@ -105,6 +107,16 @@ class TCheckBox extends TWebControl implements IPostBackDataHandler, IValidatabl }
/**
+ * Returns a value indicating whether postback has caused the control data change.
+ * This method is required by the IPostBackDataHandler interface.
+ * @return boolean whether postback has caused the control data change. False if the page is not in postback mode.
+ */
+ public function getDataChanged()
+ {
+ return $this->_dataChanged;
+ }
+
+ /**
* Returns the value of the property that needs validation.
* @return mixed the property value to be validated
*/
diff --git a/framework/Web/UI/WebControls/TCheckBoxList.php b/framework/Web/UI/WebControls/TCheckBoxList.php index 09b771eb..d0f4c7ce 100644 --- a/framework/Web/UI/WebControls/TCheckBoxList.php +++ b/framework/Web/UI/WebControls/TCheckBoxList.php @@ -52,6 +52,7 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont private $_repeatedControl;
private $_isEnabled;
private $_changedEventRaised=false;
+ private $_dataChanged=false;
/**
* Constructor.
@@ -315,7 +316,7 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont if(!$this->_changedEventRaised)
{
$this->_changedEventRaised=true;
- return true;
+ return $this->_dataChanged=true;
}
}
}
@@ -391,6 +392,16 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont }
/**
+ * Returns a value indicating whether postback has caused the control data change.
+ * This method is required by the IPostBackDataHandler interface.
+ * @return boolean whether postback has caused the control data change. False if the page is not in postback mode.
+ */
+ public function getDataChanged()
+ {
+ return $this->_dataChanged;
+ }
+
+ /**
* Returns the value to be validated.
* This methid is required by IValidatable interface.
* @return mixed the value of the property to be validated.
diff --git a/framework/Web/UI/WebControls/TDropDownList.php b/framework/Web/UI/WebControls/TDropDownList.php index 5bcf0f35..90668b95 100644 --- a/framework/Web/UI/WebControls/TDropDownList.php +++ b/framework/Web/UI/WebControls/TDropDownList.php @@ -35,6 +35,8 @@ Prado::using('System.Web.UI.WebControls.TListControl'); */
class TDropDownList extends TListControl implements IPostBackDataHandler, IValidatable
{
+ private $_dataChanged=false;
+
/**
* Adds attributes to renderer.
* @param THtmlWriter the renderer
@@ -74,7 +76,7 @@ class TDropDownList extends TListControl implements IPostBackDataHandler, IValid if($this->getSelectedIndex()!==$index)
{
$this->setSelectedIndex($index);
- return true;
+ return $this->_dataChanged=true;
}
}
return false;
@@ -95,6 +97,16 @@ class TDropDownList extends TListControl implements IPostBackDataHandler, IValid }
/**
+ * Returns a value indicating whether postback has caused the control data change.
+ * This method is required by the IPostBackDataHandler interface.
+ * @return boolean whether postback has caused the control data change. False if the page is not in postback mode.
+ */
+ public function getDataChanged()
+ {
+ return $this->_dataChanged;
+ }
+
+ /**
* @return integer the index (zero-based) of the item being selected.
* If none is selected, the return value is 0 meaning the first item is selected.
* If there is no items, it returns -1.
diff --git a/framework/Web/UI/WebControls/TFileUpload.php b/framework/Web/UI/WebControls/TFileUpload.php index 04c2c496..b3026e7c 100644 --- a/framework/Web/UI/WebControls/TFileUpload.php +++ b/framework/Web/UI/WebControls/TFileUpload.php @@ -58,6 +58,7 @@ class TFileUpload extends TWebControl implements IPostBackDataHandler, IValidata * @var integer error code of the current file upload
*/
private $_errorCode=UPLOAD_ERR_NO_FILE;
+ private $_dataChanged=false;
/**
* @return string tag name of the file upload control
@@ -207,7 +208,7 @@ class TFileUpload extends TWebControl implements IPostBackDataHandler, IValidata $this->_fileType=$_FILES[$key]['type'];
$this->_errorCode=$_FILES[$key]['error'];
$this->_localName=$_FILES[$key]['tmp_name'];
- return true;
+ return $this->_dataChanged=true;
}
else
return false;
@@ -236,6 +237,16 @@ class TFileUpload extends TWebControl implements IPostBackDataHandler, IValidata }
/**
+ * Returns a value indicating whether postback has caused the control data change.
+ * This method is required by the IPostBackDataHandler interface.
+ * @return boolean whether postback has caused the control data change. False if the page is not in postback mode.
+ */
+ public function getDataChanged()
+ {
+ return $this->_dataChanged;
+ }
+
+ /**
* Returns the original file name as the property value to be validated.
* This method is required by IValidatable property.
* @return mixed the property value to be validated
diff --git a/framework/Web/UI/WebControls/THiddenField.php b/framework/Web/UI/WebControls/THiddenField.php index acead9f0..c206e65b 100644 --- a/framework/Web/UI/WebControls/THiddenField.php +++ b/framework/Web/UI/WebControls/THiddenField.php @@ -25,6 +25,8 @@ */
class THiddenField extends TControl implements IPostBackDataHandler, IValidatable, IDataRenderer
{
+ private $_dataChanged=false;
+
/**
* @return string tag name of the hidden field.
*/
@@ -85,11 +87,21 @@ class THiddenField extends TControl implements IPostBackDataHandler, IValidatabl else
{
$this->setValue($value);
- return true;
+ return $this->_dataChanged=true;
}
}
/**
+ * Returns a value indicating whether postback has caused the control data change.
+ * This method is required by the IPostBackDataHandler interface.
+ * @return boolean whether postback has caused the control data change. False if the page is not in postback mode.
+ */
+ public function getDataChanged()
+ {
+ return $this->_dataChanged;
+ }
+
+ /**
* Returns the value to be validated.
* This methid is required by IValidatable interface.
* @return mixed the value of the property to be validated.
diff --git a/framework/Web/UI/WebControls/TImageButton.php b/framework/Web/UI/WebControls/TImageButton.php index 44d4c14b..90055ea0 100644 --- a/framework/Web/UI/WebControls/TImageButton.php +++ b/framework/Web/UI/WebControls/TImageButton.php @@ -66,6 +66,7 @@ class TImageButton extends TImage implements IPostBackDataHandler, IPostBackEven * @var integer y coordinate that the image is being clicked at
*/
private $_y=0;
+ private $_dataChanged=false;
/**
* @return string tag name of the button
@@ -202,6 +203,7 @@ class TImageButton extends TImage implements IPostBackDataHandler, IPostBackEven $this->_y=intval($values["{$uid}_y"]);
if($this->getPage()->getPostBackEventTarget()===null)
$this->getPage()->setPostBackEventTarget($this);
+ $this->_dataChanged=true;
}
return false;
}
@@ -257,6 +259,16 @@ class TImageButton extends TImage implements IPostBackDataHandler, IPostBackEven }
/**
+ * Returns a value indicating whether postback has caused the control data change.
+ * This method is required by the IPostBackDataHandler interface.
+ * @return boolean whether postback has caused the control data change. False if the page is not in postback mode.
+ */
+ public function getDataChanged()
+ {
+ return $this->_dataChanged;
+ }
+
+ /**
* @return boolean whether postback event trigger by this button will cause input validation, default is true
*/
public function getCausesValidation()
diff --git a/framework/Web/UI/WebControls/TListBox.php b/framework/Web/UI/WebControls/TListBox.php index c49e2561..6112915f 100644 --- a/framework/Web/UI/WebControls/TListBox.php +++ b/framework/Web/UI/WebControls/TListBox.php @@ -38,6 +38,8 @@ Prado::using('System.Web.UI.WebControls.TListControl'); */
class TListBox extends TListControl implements IPostBackDataHandler, IValidatable
{
+ private $_dataChanged=false;
+
/**
* Adds attribute name-value pairs to renderer.
* This method overrides the parent implementation with additional list box specific attributes.
@@ -99,7 +101,7 @@ class TListBox extends TListControl implements IPostBackDataHandler, IValidatabl if($this->getSelectedIndex()!==$index)
{
$this->setSelectedIndex($index);
- return true;
+ return $this->_dataChanged=true;
}
else
return false;
@@ -127,13 +129,16 @@ class TListBox extends TListControl implements IPostBackDataHandler, IValidatabl else
$flag=true;
if($flag)
+ {
$this->setSelectedIndices($list);
+ $this->_dataChanged=true;
+ }
return $flag;
}
else if($this->getSelectedIndex()!==-1)
{
$this->clearSelection();
- return true;
+ return $this->_dataChanged=true;
}
else
return false;
@@ -154,6 +159,16 @@ class TListBox extends TListControl implements IPostBackDataHandler, IValidatabl }
/**
+ * Returns a value indicating whether postback has caused the control data change.
+ * This method is required by the IPostBackDataHandler interface.
+ * @return boolean whether postback has caused the control data change. False if the page is not in postback mode.
+ */
+ public function getDataChanged()
+ {
+ return $this->_dataChanged;
+ }
+
+ /**
* @return boolean whether this control allows multiple selection
*/
protected function getIsMultiSelect()
diff --git a/framework/Web/UI/WebControls/TTextBox.php b/framework/Web/UI/WebControls/TTextBox.php index 3517c73a..1fd54191 100644 --- a/framework/Web/UI/WebControls/TTextBox.php +++ b/framework/Web/UI/WebControls/TTextBox.php @@ -66,6 +66,7 @@ class TTextBox extends TWebControl implements IPostBackDataHandler, IValidatable * @var string safe textbox content with javascript stripped off
*/
private $_safeText;
+ private $_dataChanged=false;
/**
* @return string tag name of the textbox
@@ -216,13 +217,23 @@ class TTextBox extends TWebControl implements IPostBackDataHandler, IValidatable if(!$this->getReadOnly() && $this->getText()!==$value)
{
$this->setText($value);
- return true;
+ return $this->_dataChanged=true;
}
else
return false;
}
/**
+ * Returns a value indicating whether postback has caused the control data change.
+ * This method is required by the IPostBackDataHandler interface.
+ * @return boolean whether postback has caused the control data change. False if the page is not in postback mode.
+ */
+ public function getDataChanged()
+ {
+ return $this->_dataChanged;
+ }
+
+ /**
* Returns the value to be validated.
* This methid is required by IValidatable interface.
* @return mixed the value of the property to be validated.
|