From df05d222194535b6039975a1877bc61455d1abee Mon Sep 17 00:00:00 2001 From: xue <> Date: Tue, 13 Jun 2006 02:21:37 +0000 Subject: TRepeater, TDataList and TDataGrid will store data indices in DataKeys if DataKeyField is not set. --- framework/Web/UI/WebControls/TDataGrid.php | 4 +++- framework/Web/UI/WebControls/TDataList.php | 4 +++- framework/Web/UI/WebControls/TRepeater.php | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) (limited to 'framework') diff --git a/framework/Web/UI/WebControls/TDataGrid.php b/framework/Web/UI/WebControls/TDataGrid.php index d2625c0d..69798c1a 100644 --- a/framework/Web/UI/WebControls/TDataGrid.php +++ b/framework/Web/UI/WebControls/TDataGrid.php @@ -1047,10 +1047,12 @@ class TDataGrid extends TBaseDataList implements INamingContainer $editIndex=$this->getEditItemIndex(); $index=0; $dsIndex=$ds->getAllowPaging()?$ds->getFirstIndexInPage():0; - foreach($ds as $data) + foreach($ds as $key=>$data) { if($keyField!=='') $keys->add($this->getDataFieldValue($data,$keyField)); + else + $keys->add($key); if($index===$editIndex) $itemType=self::IT_EDITITEM; else if($index===$selectedIndex) diff --git a/framework/Web/UI/WebControls/TDataList.php b/framework/Web/UI/WebControls/TDataList.php index 0bec8921..b2bd9229 100644 --- a/framework/Web/UI/WebControls/TDataList.php +++ b/framework/Web/UI/WebControls/TDataList.php @@ -1129,10 +1129,12 @@ class TDataList extends TBaseDataList implements INamingContainer, IRepeatInfoUs $hasSeparator=$this->_separatorTemplate!==null; $selectedIndex=$this->getSelectedItemIndex(); $editIndex=$this->getEditItemIndex(); - foreach($data as $dataItem) + foreach($data as $key=>$dataItem) { if($keyField!=='') $keys->add($this->getDataFieldValue($dataItem,$keyField)); + else + $keys->add($key); if($itemIndex===0 && $this->_headerTemplate!==null) $this->_header=$this->createItemInternal(-1,'Header',true,null); if($hasSeparator && $itemIndex>0) diff --git a/framework/Web/UI/WebControls/TRepeater.php b/framework/Web/UI/WebControls/TRepeater.php index 2070cb1a..9c1cc4ac 100644 --- a/framework/Web/UI/WebControls/TRepeater.php +++ b/framework/Web/UI/WebControls/TRepeater.php @@ -443,10 +443,12 @@ class TRepeater extends TDataBoundControl implements INamingContainer $items=$this->getItems(); $itemIndex=0; $hasSeparator=$this->_separatorTemplate!==null; - foreach($data as $dataItem) + foreach($data as $key=>$dataItem) { if($keyField!=='') $keys->add($this->getDataFieldValue($dataItem,$keyField)); + else + $keys->add($key); if($itemIndex===0 && $this->_headerTemplate!==null) $this->_header=$this->createItemInternal(-1,self::IT_HEADER,true,null); if($hasSeparator && $itemIndex>0) -- cgit v1.2.3