From f6a0691f3cd3ae16dee61b86d0fcfea27a3f751b Mon Sep 17 00:00:00 2001 From: xue <> Date: Sun, 26 Feb 2006 18:17:40 +0000 Subject: Fixed an issue about style merging. --- framework/Web/UI/WebControls/TDataGrid.php | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'framework/Web/UI/WebControls/TDataGrid.php') diff --git a/framework/Web/UI/WebControls/TDataGrid.php b/framework/Web/UI/WebControls/TDataGrid.php index c6d27b7e..367b2c9b 100644 --- a/framework/Web/UI/WebControls/TDataGrid.php +++ b/framework/Web/UI/WebControls/TDataGrid.php @@ -1251,15 +1251,25 @@ class TDataGrid extends TBaseDataList implements INamingContainer { $itemStyle=$this->getViewState('ItemStyle',null); - $alternatingItemStyle=new TTableItemStyle($itemStyle); - if(($style=$this->getViewState('AlternatingItemStyle',null))!==null) - $alternatingItemStyle->mergeWith($style); + $alternatingItemStyle=$this->getViewState('AlternatingItemStyle',null); + if($itemStyle!==null) + { + if($alternatingItemStyle===null) + $alternatingItemStyle=$itemStyle; + else + $alternatingItemStyle->mergeWith($itemStyle); + } $selectedItemStyle=$this->getViewState('SelectedItemStyle',null); - $editItemStyle=new TTableItemStyle($selectedItemStyle); - if(($style=$this->getViewState('EditItemStyle',null))!==null) - $editItemStyle->copyFrom($style); + $editItemStyle=$this->getViewState('EditItemStyle',null); + if($selectedItemStyle!==null) + { + if($editItemStyle===null) + $editItemStyle=$selectedItemStyle; + else + $editItemStyle->mergeWith($selectedItemStyle); + } $headerStyle=$this->getViewState('HeaderStyle',null); $footerStyle=$this->getViewState('FooterStyle',null); @@ -1304,6 +1314,8 @@ class TDataGrid extends TBaseDataList implements INamingContainer $item->getStyle()->mergeWith($alternatingItemStyle); break; case 'SelectedItem': + if($selectedItemStyle) + $item->getStyle()->mergeWith($selectedItemStyle); if($index % 2==1) { if($itemStyle) @@ -1314,10 +1326,10 @@ class TDataGrid extends TBaseDataList implements INamingContainer if($alternatingItemStyle) $item->getStyle()->mergeWith($alternatingItemStyle); } - if($selectedItemStyle) - $item->getStyle()->mergeWith($selectedItemStyle); break; case 'EditItem': + if($editItemStyle) + $item->getStyle()->mergeWith($editItemStyle); if($index % 2==1) { if($itemStyle) @@ -1328,8 +1340,6 @@ class TDataGrid extends TBaseDataList implements INamingContainer if($alternatingItemStyle) $item->getStyle()->mergeWith($alternatingItemStyle); } - if($editItemStyle) - $item->getStyle()->mergeWith($editItemStyle); break; case 'Pager': if($pagerStyle) -- cgit v1.2.3