From c0d9d27f16bae2e428225302da144e9cc6d4adc8 Mon Sep 17 00:00:00 2001 From: xue <> Date: Fri, 21 Jul 2006 16:14:01 +0000 Subject: merge from 3.0 branch till 1281. --- framework/Web/UI/WebControls/TBaseValidator.php | 16 ++++++++++++---- framework/Web/UI/WebControls/TDataGrid.php | 14 ++++++++++++++ framework/Web/UI/WebControls/TDataList.php | 14 ++++++++++++++ framework/Web/UI/WebControls/TRepeater.php | 18 ++++++++++++++++-- 4 files changed, 56 insertions(+), 6 deletions(-) (limited to 'framework/Web/UI/WebControls') diff --git a/framework/Web/UI/WebControls/TBaseValidator.php b/framework/Web/UI/WebControls/TBaseValidator.php index 9366de62..6660184e 100644 --- a/framework/Web/UI/WebControls/TBaseValidator.php +++ b/framework/Web/UI/WebControls/TBaseValidator.php @@ -10,6 +10,11 @@ * @package System.Web.UI.WebControls */ +/** + * Using TLabel class + */ +Prado::using('System.Web.UI.WebControls.TLabel'); + /** * TBaseValidator class * @@ -474,10 +479,10 @@ abstract class TBaseValidator extends TLabel implements IValidator */ public function validate() { - $this->onValidate(); + if($visible=$this->getVisible(true)) + $this->onValidate(); $this->setIsValid(true); - $control=$this->getValidationTarget(); - if($control && $this->getVisible(true) && $this->getEnabled()) + if($this->getValidationTarget() && $visible && $this->getEnabled()) { if($this->evaluateIsValid()) { @@ -534,6 +539,9 @@ abstract class TBaseValidator extends TLabel implements IValidator /** * This event is raised right before the validator starts to perform validation. + * You may use this event to change the behavior of validation. + * For example, you may disable the validator if certain condition is satisfied. + * Note, the event will NOT be raised if the validator is invisible. */ public function onValidate() { @@ -666,4 +674,4 @@ class TClientSideValidatorOptions extends TClientSideOptions } } -?> +?> \ No newline at end of file diff --git a/framework/Web/UI/WebControls/TDataGrid.php b/framework/Web/UI/WebControls/TDataGrid.php index f7697fec..2687ac35 100644 --- a/framework/Web/UI/WebControls/TDataGrid.php +++ b/framework/Web/UI/WebControls/TDataGrid.php @@ -43,6 +43,12 @@ Prado::using('System.Web.UI.WebControls.TPanel'); * To change the state of an item, set {@link setEditItemIndex EditItemIndex} * or {@link setSelectedItemIndex SelectedItemIndex} property. * + * Each datagrid item has a {@link TDataGridItem::getItemType type} + * which tells the position and state of the item in the datalist. An item in the header + * of the repeater is of type 'Header'. A body item may be of either + * 'Item', 'AlternatingItem', 'SelectedItem' or 'EditItem', depending whether the item + * index is odd or even, whether it is being selected or edited. + * * A datagrid is specified with a list of columns. Each column specifies how the corresponding * table column will be displayed. For example, the header/footer text of that column, * the cells in that column, and so on. The following column types are currently @@ -128,6 +134,14 @@ Prado::using('System.Web.UI.WebControls.TPanel'); * every newly created datagrid item. You can respond to this event to customize * the content or style of the newly created item. * + * Note, the data bound to the datagrid are reset to null after databinding. + * There are several ways to access the data associated with a datagrid row: + * - Access the data in {@link onItemDataBound OnItemDataBound} event + * - Use {@link getDataKeys DataKeys} to obtain the data key associated with + * the specified datagrid row and use the key to fetch the corresponding data + * from some persistent storage such as DB. + * - Save the data in viewstate and get it back during postbacks. + * * @author Qiang Xue * @version $Revision: $ $Date: $ * @package System.Web.UI.WebControls diff --git a/framework/Web/UI/WebControls/TDataList.php b/framework/Web/UI/WebControls/TDataList.php index 2c562d6d..42c47f86 100644 --- a/framework/Web/UI/WebControls/TDataList.php +++ b/framework/Web/UI/WebControls/TDataList.php @@ -85,12 +85,26 @@ Prado::using('System.Web.UI.WebControls.TRepeatInfo'); * event will be raised. Note, the selected index may not be actually changed. * The event mainly informs the server side that the end-user has made a selection. * + * Each datalist item has a {@link TDataListItem::getItemType type} + * which tells the position and state of the item in the datalist. An item in the header + * of the repeater is of type 'Header'. A body item may be of either + * 'Item', 'AlternatingItem', 'SelectedItem' or 'EditItem', depending whether the item + * index is odd or even, whether it is being selected or edited. + * * TDataList raises an {@link onItemCommand OnItemCommand} whenever a button control * within some TDataList item raises a OnCommand event. If the command name * is one of the followings: 'edit', 'update', 'select', 'delete', 'cancel' (case-insensitive), * another event will also be raised. For example, if the command name is 'edit', * then the new event is {@link onEditCommand OnEditCommand}. * + * Note, the data bound to the datalist are reset to null after databinding. + * There are several ways to access the data associated with a datalist item: + * - Access the data in {@link onItemDataBound OnItemDataBound} event + * - Use {@link getDataKeys DataKeys} to obtain the data key associated with + * the specified datalist item and use the key to fetch the corresponding data + * from some persistent storage such as DB. + * - Save the data in viewstate and get it back during postbacks. + * * @author Qiang Xue * @version $Revision: $ $Date: $ * @package System.Web.UI.WebControls diff --git a/framework/Web/UI/WebControls/TRepeater.php b/framework/Web/UI/WebControls/TRepeater.php index eb599341..01c88a30 100644 --- a/framework/Web/UI/WebControls/TRepeater.php +++ b/framework/Web/UI/WebControls/TRepeater.php @@ -36,6 +36,12 @@ Prado::using('System.Util.TDataFieldAccessor'); * {@link setSeparatorTemplate SeparatorTemplate}, if not empty, will be * displayed between items. * + * Each repeater item has a {@link TRepeaterItem::getItemType type} + * which tells the position of the item in the repeater. An item in the header + * of the repeater is of type TRepeater::IT_HEADER. A body item may be of either + * TRepeater::IT_ITEM or TRepeater::IT_ALTERNATINGITEM, depending whether the item + * index is odd or even. + * * You can retrive the repeated contents by the {@link getItems Items} property. * The header and footer items can be accessed by {@link getHeader Header} * and {@link getFooter Footer} properties, respectively. @@ -46,10 +52,18 @@ Prado::using('System.Util.TDataFieldAccessor'); * databinding, an {@link onItemDataBound OnItemDataBound} event will be raised. * * TRepeater raises an {@link onItemCommand OnItemCommand} whenever a button control - * within some repeater item raises a Command event. Therefore, - * you can handle all sorts of Command event in a central place by + * within some repeater item raises a OnCommand event. Therefore, + * you can handle all sorts of OnCommand event in a central place by * writing an event handler for {@link onItemCommand OnItemCommand}. * + * Note, the data bound to the repeater are reset to null after databinding. + * There are several ways to access the data associated with a repeater item: + * - Access the data in {@link onItemDataBound OnItemDataBound} event + * - Use {@link getDataKeys DataKeys} to obtain the data key associated with + * the specified repeater item and use the key to fetch the corresponding data + * from some persistent storage such as DB. + * - Save the data in viewstate and get it back during postbacks. + * * @author Qiang Xue * @version $Revision: $ $Date: $ * @package System.Web.UI.WebControls -- cgit v1.2.3