From 8aa0d56705a71894a80c1293730b6c67cddc8a40 Mon Sep 17 00:00:00 2001 From: "ctrlaltca@gmail.com" <> Date: Thu, 2 Jun 2011 09:30:55 +0000 Subject: added documentation for TActiveDataList, TActiveDataGrid and TActiveRepeater class --- .../Samples/TActiveRepeater/Home.page | 92 ++++++++++++++++++++++ .../Samples/TActiveRepeater/Home.php | 79 +++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 demos/quickstart/protected/pages/ActiveControls/Samples/TActiveRepeater/Home.page create mode 100644 demos/quickstart/protected/pages/ActiveControls/Samples/TActiveRepeater/Home.php (limited to 'demos/quickstart/protected/pages/ActiveControls/Samples/TActiveRepeater') diff --git a/demos/quickstart/protected/pages/ActiveControls/Samples/TActiveRepeater/Home.page b/demos/quickstart/protected/pages/ActiveControls/Samples/TActiveRepeater/Home.page new file mode 100644 index 00000000..4d855cbc --- /dev/null +++ b/demos/quickstart/protected/pages/ActiveControls/Samples/TActiveRepeater/Home.page @@ -0,0 +1,92 @@ + + +

TActiveRepeater Sample

+ +

+The following example allows users to modify the existing tabular data using a TActiveRepeater. Two validators are used in the repeater to ensure the validity of user inputs. One is to ensure product names are not empty, the other ensures product prices are valid numeric format. After clicking on the save button, the input data is displayed in a table at the bottom of the page. +

+ + + + + + + + + + + + + + + + + + +
NameCategoryPriceImported
+ Data['name']%> /> + + + + Data['price']%> /> + + Data['imported']%> /> + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDNameCategoryPriceImported
<%#$this->Data['id']%><%#$this->Data['name']%><%#$this->Data['category']%><%#$this->Data['price']%><%#$this->Data['imported']?'Yes':'No'%>
Computer Parts Inventory
+ + +
+ +
+ +
$Id: Sample3.page 1688 2007-02-09 22:48:31Z xue $
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/ActiveControls/Samples/TActiveRepeater/Home.php b/demos/quickstart/protected/pages/ActiveControls/Samples/TActiveRepeater/Home.php new file mode 100644 index 00000000..f7c8d61c --- /dev/null +++ b/demos/quickstart/protected/pages/ActiveControls/Samples/TActiveRepeater/Home.php @@ -0,0 +1,79 @@ +'ITN001','name'=>'Motherboard','category'=>'CAT004','price'=>100.00,'imported'=>true), + array('id'=>'ITN002','name'=>'CPU','category'=>'CAT004','price'=>150.00,'imported'=>true), + array('id'=>'ITN003','name'=>'Harddrive','category'=>'CAT003','price'=>80.00,'imported'=>true), + array('id'=>'ITN006','name'=>'Keyboard','category'=>'CAT002','price'=>20.00,'imported'=>false), + array('id'=>'ITN008','name'=>'CDRW drive','category'=>'CAT003','price'=>40.00,'imported'=>true), + array('id'=>'ITN009','name'=>'Cooling fan','category'=>'CAT001','price'=>10.00,'imported'=>false), + array('id'=>'ITN012','name'=>'Floppy drive','category'=>'CAT003','price'=>12.00,'imported'=>false), + array('id'=>'ITN013','name'=>'CD drive','category'=>'CAT003','price'=>20.00,'imported'=>true), + array('id'=>'ITN014','name'=>'DVD drive','category'=>'CAT003','price'=>80.00,'imported'=>true), + array('id'=>'ITN015','name'=>'Mouse pad','category'=>'CAT001','price'=>5.00,'imported'=>false), + ); + } + + protected function getCategories() + { + return array( + array('id'=>'CAT001','name'=>'Accessories'), + array('id'=>'CAT002','name'=>'Input Devices'), + array('id'=>'CAT003','name'=>'Drives'), + array('id'=>'CAT004','name'=>'Barebone'), + ); + } + + public function onLoad($param) + { + parent::onLoad($param); + if(!$this->IsPostBack) + { + $this->Repeater->DataSource=$this->Products; + $this->Repeater->dataBind(); + } + } + + public function repeaterDataBound($sender,$param) + { + $item=$param->Item; + if($item->ItemType==='Item' || $item->ItemType==='AlternatingItem') + { + $item->ProductCategory->DataSource=$this->Categories; + $item->ProductCategory->DataTextField='name'; + $item->ProductCategory->DataValueField='id'; + $item->ProductCategory->dataBind(); + $item->ProductCategory->SelectedValue=$item->DataItem['category']; + } + } + + public function saveInput($sender,$param) + { + if($this->IsValid) + { + $index=0; + $products=$this->Products; + $data=array(); + foreach($this->Repeater->Items as $item) + { + $item=array( + 'id'=>$products[$index]['id'], + 'name'=>$item->ProductName->Text, + 'category'=>$item->ProductCategory->SelectedItem->Text, + 'price'=>TPropertyValue::ensureFloat($item->ProductPrice->Text), + 'imported'=>$item->ProductImported->Checked, + ); + $data[]=$item; + $index++; + } + $this->Repeater2->DataSource=$data; + $this->Repeater2->dataBind(); + } + } +} + +?> \ No newline at end of file -- cgit v1.2.3