From 598fac7617264c20b5c7e6f914b5aba18a677b01 Mon Sep 17 00:00:00 2001 From: xue <> Date: Thu, 19 Jan 2006 17:14:45 +0000 Subject: Fix a few issues with listcontrols about databinding. --- framework/Web/UI/WebControls/TListControl.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'framework/Web/UI/WebControls/TListControl.php') diff --git a/framework/Web/UI/WebControls/TListControl.php b/framework/Web/UI/WebControls/TListControl.php index 537df7c5..d15a7bf1 100644 --- a/framework/Web/UI/WebControls/TListControl.php +++ b/framework/Web/UI/WebControls/TListControl.php @@ -43,11 +43,11 @@ Prado::using('System.Web.UI.WebControls.TDataBoundControl'); * The latter two are covered in {@link TDataBoundControl}. To specify items via * template, using the following template syntax: * - * <com:TListControl> - * <com:TListItem Value="xxx" Text="yyy" > - * <com:TListItem Value="xxx" Text="yyy" Selected="true" > - * <com:TListItem Value="xxx" Text="yyy" > - * </com:TListControl> + * + * + * + * + * * * * When {@link setDataSource DataSource} or {@link setDataSourceID DataSourceID} @@ -167,16 +167,18 @@ abstract class TListControl extends TDataBoundControl if($valueField==='') $valueField=1; $textFormat=$this->getDataTextFormatString(); - foreach($data as $object) + foreach($data as $key=>$object) { $item=new TListItem; - if(isset($object[$textField])) + if(!is_string($object) && isset($object[$textField])) $text=$object[$textField]; else $text=TPropertyValue::ensureString($object); $item->setText($textFormat===''?$text:sprintf($textFormat,$text)); - if(isset($object[$valueField])) + if(!is_string($object) && isset($object[$valueField])) $item->setValue($object[$valueField]); + else if(!is_integer($key)) + $item->setValue($key); $items->add($item); } } -- cgit v1.2.3