From e0c9de073cce5b5c9975694c03e2dbe63788bd66 Mon Sep 17 00:00:00 2001 From: xue <> Date: Sat, 29 Jul 2006 14:43:53 +0000 Subject: Merge from 3.0 branch till 1305. --- framework/Web/UI/WebControls/TListControl.php | 35 ++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 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 bd883590..8c1537b0 100644 --- a/framework/Web/UI/WebControls/TListControl.php +++ b/framework/Web/UI/WebControls/TListControl.php @@ -643,24 +643,53 @@ abstract class TListControl extends TDataBoundControl if($this->_items) { $writer->writeLine(); + $previousGroup=null; foreach($this->_items as $item) { if($item->getEnabled()) { - if($item->getSelected()) - $writer->addAttribute('selected','selected'); - $writer->addAttribute('value',$item->getValue()); if($item->getHasAttributes()) { + $group=$item->getAttributes()->remove('Group'); + if($group!==$previousGroup) + { + if($previousGroup!==null) + { + $writer->renderEndTag(); + $writer->writeLine(); + $previousGroup=null; + } + if($group!==null) + { + $writer->addAttribute('label',$group); + $writer->renderBeginTag('optgroup'); + $writer->writeLine(); + $previousGroup=$group; + } + } foreach($item->getAttributes() as $name=>$value) $writer->addAttribute($name,$value); } + else if($previousGroup!==null) + { + $writer->renderEndTag(); + $writer->writeLine(); + $previousGroup=null; + } + if($item->getSelected()) + $writer->addAttribute('selected','selected'); + $writer->addAttribute('value',$item->getValue()); $writer->renderBeginTag('option'); $writer->write(THttpUtility::htmlEncode($item->getText())); $writer->renderEndTag(); $writer->writeLine(); } } + if($previousGroup!==null) + { + $writer->renderEndTag(); + $writer->writeLine(); + } } } -- cgit v1.2.3