From 69fa043ebb880ce8164691d81be7f24e972d8639 Mon Sep 17 00:00:00 2001 From: xue <> Date: Tue, 6 Feb 2007 18:02:21 +0000 Subject: updated comments about renderer feature. --- framework/Web/UI/WebControls/TBoundColumn.php | 23 +++++++++++++++++++---- framework/Web/UI/WebControls/TDataGrid.php | 1 + framework/Web/UI/WebControls/TDataGridColumn.php | 11 +++++++++++ framework/Web/UI/WebControls/TTemplateColumn.php | 16 ++++++++++++++-- 4 files changed, 45 insertions(+), 6 deletions(-) (limited to 'framework/Web/UI') diff --git a/framework/Web/UI/WebControls/TBoundColumn.php b/framework/Web/UI/WebControls/TBoundColumn.php index 89de53bd..7927d198 100644 --- a/framework/Web/UI/WebControls/TBoundColumn.php +++ b/framework/Web/UI/WebControls/TBoundColumn.php @@ -35,6 +35,12 @@ Prado::using('System.Web.UI.WebControls.TDataGridColumn'); * The second method is possible because the textbox control created within the * datagrid cell is the first child. * + * Since v3.1.0, TBoundColumn has introduced two new properties {@link setItemRenderer ItemRenderer} + * and {@link setEditItemRenderer EditItemRenderer} which can be used to specify + * the layout of the datagrid cells in browsing and editing mode. + * A renderer refers to a control class that is to be instantiated as a control. + * For more details, see {@link TRepeater} and {@link TDataList}. + * * @author Qiang Xue * @version $Id$ * @package System.Web.UI.WebControls @@ -56,6 +62,12 @@ class TBoundColumn extends TDataGridColumn * * If not empty, the class will be used to instantiate as a child control in the item cells of the column. * + * If the class implements {@link IDataRenderer}, the Data property + * will be set as the data associated with the datagrid cell during databinding. + * The data can be either the whole data row or a field of the row if + * {@link getDataField DataField} is not empty. If {@link getDataFormatString DataFormatString} + * is not empty, the data will be formatted first before passing to the renderer. + * * @param string the renderer class name in namespace format. * @since 3.1.0 */ @@ -78,6 +90,12 @@ class TBoundColumn extends TDataGridColumn * * If not empty, the class will be used to instantiate as a child control in the item cell that is in edit mode. * + * If the class implements {@link IDataRenderer}, the Data property + * will be set as the data associated with the datagrid cell during databinding. + * The data can be either the whole data row or a field of the row if + * {@link getDataField DataField} is not empty. If {@link getDataFormatString DataFormatString} + * is not empty, the data will be formatted first before passing to the renderer. + * * @param string the renderer class name in namespace format. * @since 3.1.0 */ @@ -211,10 +229,7 @@ class TBoundColumn extends TDataGridColumn $value=$this->formatDataValue($formatString,$this->getDataFieldValue($data,$field)); else $value=$this->formatDataValue($formatString,$data); - if($sender instanceof IItemDataRenderer) - $sender->setData($data); - else if($sender instanceof IDataRenderer) - $sender->setData($value); + $sender->setData($value); } } diff --git a/framework/Web/UI/WebControls/TDataGrid.php b/framework/Web/UI/WebControls/TDataGrid.php index 65717d71..c10431da 100644 --- a/framework/Web/UI/WebControls/TDataGrid.php +++ b/framework/Web/UI/WebControls/TDataGrid.php @@ -56,6 +56,7 @@ Prado::using('System.Web.UI.WebControls.TPanel'); * - {@link TBoundColumn}, associated with a specific field in datasource and displays the corresponding data. * - {@link TEditCommandColumn}, displaying edit/update/cancel command buttons * - {@link TButtonColumn}, displaying generic command buttons that may be bound to specific field in datasource. + * - {@link TDropDownListColumn}, displaying a dropdown list when the item is in edit state * - {@link THyperLinkColumn}, displaying a hyperlink that may be bound to specific field in datasource. * - {@link TCheckBoxColumn}, displaying a checkbox that may be bound to specific field in datasource. * - {@link TTemplateColumn}, displaying content based on templates. diff --git a/framework/Web/UI/WebControls/TDataGridColumn.php b/framework/Web/UI/WebControls/TDataGridColumn.php index 7228dcfd..161f24eb 100644 --- a/framework/Web/UI/WebControls/TDataGridColumn.php +++ b/framework/Web/UI/WebControls/TDataGridColumn.php @@ -27,6 +27,12 @@ Prado::using('System.Web.UI.WebControls.TDataGrid'); * The {@link getItemStyle ItemStyle} is applied to cells that belong to * non-header and -footer datagrid items. * + * Since v3.1.0, TDataGridColumn has introduced two new properties {@link setHeaderRenderer HeaderRenderer} + * and {@link setFooterRenderer FooterRenderer} which can be used to specify + * the layout of header and footer column cells. + * A renderer refers to a control class that is to be instantiated as a control. + * For more details, see {@link TRepeater} and {@link TDataList}. + * * When the datagrid enables sorting, if the {@link setSortExpression SortExpression} * is not empty, the header cell will display a button (linkbutton or imagebutton) * that will bubble the sort command event to the datagrid. @@ -34,6 +40,7 @@ Prado::using('System.Web.UI.WebControls.TDataGrid'); * The following datagrid column types are provided by the framework currently, * - {@link TBoundColumn}, associated with a specific field in datasource and displays the corresponding data. * - {@link TEditCommandColumn}, displaying edit/update/cancel command buttons + * - {@link TDropDownListColumn}, displaying a dropdown list when the item is in edit state * - {@link TButtonColumn}, displaying generic command buttons that may be bound to specific field in datasource. * - {@link THyperLinkColumn}, displaying a hyperlink that may be bound to specific field in datasource. * - {@link TCheckBoxColumn}, displaying a checkbox that may be bound to specific field in datasource. @@ -120,6 +127,8 @@ abstract class TDataGridColumn extends TApplicationComponent * Sets the column header cell renderer class. * * If not empty, the class will be used to instantiate as a child control in the column header cell. + * If the class implements {@link IDataRenderer}, the Data property + * will be set as the {@link getFooterText FooterText}. * * @param string the renderer class name in namespace format. * @since 3.1.0 @@ -172,6 +181,8 @@ abstract class TDataGridColumn extends TApplicationComponent * Sets the column footer cell renderer class. * * If not empty, the class will be used to instantiate as a child control in the column footer cell. + * If the class implements {@link IDataRenderer}, the Data property + * will be set as the {@link getFooterText FooterText}. * * @param string the renderer class name in namespace format. * @since 3.1.0 diff --git a/framework/Web/UI/WebControls/TTemplateColumn.php b/framework/Web/UI/WebControls/TTemplateColumn.php index fe9674cc..bd3a2acb 100644 --- a/framework/Web/UI/WebControls/TTemplateColumn.php +++ b/framework/Web/UI/WebControls/TTemplateColumn.php @@ -24,8 +24,14 @@ Prado::using('System.Web.UI.WebControls.TDataGridColumn'); * and {@link setFooterTemplate FooterTemplate} to customize specific * type of cells in the column. * - * Note, if {@link setHeaderTemplate HeaderTemplate} is not set, the column - * header will be displayed with {@link setHeaderText HeaderText}. + * Since v3.1.0, TTemplateColumn has introduced two new properties {@link setItemRenderer ItemRenderer} + * and {@link setEditItemRenderer EditItemRenderer} which can be used to specify + * the layout of the datagrid cells in browsing and editing mode. + * A renderer refers to a control class that is to be instantiated as a control. + * For more details, see {@link TRepeater} and {@link TDataList}. + * + * When a renderer and a template are both defined for a type of item, the former + * takes precedence. * * @author Qiang Xue * @version $Id$ @@ -57,6 +63,9 @@ class TTemplateColumn extends TDataGridColumn * * If not empty, the class will be used to instantiate as a child control in the item cells of the column. * + * If the class implements {@link IDataRenderer}, the Data property + * will be set as the row of the data associated with the datagrid item that this cell resides in. + * * @param string the renderer class name in namespace format. * @since 3.1.0 */ @@ -79,6 +88,9 @@ class TTemplateColumn extends TDataGridColumn * * If not empty, the class will be used to instantiate as a child control in the item cell that is in edit mode. * + * If the class implements {@link IDataRenderer}, the Data property + * will be set as the row of the data associated with the datagrid item that this cell resides in. + * * @param string the renderer class name in namespace format. * @since 3.1.0 */ -- cgit v1.2.3