diff options
author | xue <> | 2006-01-31 21:27:51 +0000 |
---|---|---|
committer | xue <> | 2006-01-31 21:27:51 +0000 |
commit | bbb5ba2761529a2f477589623b2b76b10d6f8803 (patch) | |
tree | 0a038fe9376e4226a5c08a9dec2f39215d526f6e /demos/quickstart/protected | |
parent | a349f11b4caec0d7e82e3327d79db1b0a30642fc (diff) |
Split TTable.php file into individual class files. Modified TRepeater demo 2.
Diffstat (limited to 'demos/quickstart/protected')
3 files changed, 53 insertions, 34 deletions
diff --git a/demos/quickstart/protected/pages/Controls/Repeater.page b/demos/quickstart/protected/pages/Controls/Repeater.page index 9c21eaab..d8789dac 100644 --- a/demos/quickstart/protected/pages/Controls/Repeater.page +++ b/demos/quickstart/protected/pages/Controls/Repeater.page @@ -33,7 +33,7 @@ Normally, you only need to do this when the page containing the repeater is init </p>
<com:RunBar PagePath="Controls.Samples.TRepeater.Sample1" />
<p>
-TRepeater can be used in more complex situations. As an example, we show how to use nested repeaters, i.e., repeater in repeater. This is commonly seen in master-detail data presentation. To use a repeater within another repeater, for an item for the outer repeater is created, we need to set the detail data source for the inner repeater. This can be achieved by responding to the <tt>OnItemDataBound</tt> event of the outer repeater which is raised right after an outer repeater item completes databinding (therefore, the data is available).
+TRepeater can be used in more complex situations. As an example, we show in the following how to use nested repeaters, i.e., repeater in repeater. This is commonly seen in presenting master-detail data. To use a repeater within another repeater, for an item for the outer repeater is created, we need to set the detail data source for the inner repeater. This can be achieved by responding to the <tt>OnItemDataBound</tt> event of the outer repeater. An <tt>OnItemDataBound</tt> event is raised each time an outer repeater item completes databinding. In the following example, we exploit another event of repeater called <tt>OnItemCreated</tt>, which is raised each time a repeater item (and its content) is newly created. We respond to this event by setting different background colors for repeater items to achieve alternating item background display. This saves us from writing an <tt>AlternatingItemTemplate</tt> for the repeaters.
</p>
<com:RunBar PagePath="Controls.Samples.TRepeater.Sample2" />
<p>
diff --git a/demos/quickstart/protected/pages/Controls/Samples/TRepeater/Sample2.page b/demos/quickstart/protected/pages/Controls/Samples/TRepeater/Sample2.page index dbfc7a18..bb78c35a 100644 --- a/demos/quickstart/protected/pages/Controls/Samples/TRepeater/Sample2.page +++ b/demos/quickstart/protected/pages/Controls/Samples/TRepeater/Sample2.page @@ -3,46 +3,44 @@ <h1>TRepeater Sample 2</h1>
<com:TRepeater ID="Repeater"
- OnItemDataBound="dataBindRepeater2">
+ OnItemDataBound="dataBindRepeater2"
+ OnItemCreated="repeaterItemCreated">
<prop:HeaderTemplate>
-<table cellspacing="1" style="border-collapse: collapse;border:1px solid silver">
-<tr style="color:white;background-color:black">
-<th colspan="2">Regional Personnel</th>
-</tr>
+<table cellspacing="1" style="border-collapse:collapse;border:1px solid silver">
</prop:HeaderTemplate>
<prop:ItemTemplate>
<tr>
-<td style="background-color:silver"><%#$this->Parent->DataItem %></td>
+<com:TTableCell ID="Cell">
+ <%#$this->NamingContainer->DataItem %>
+</com:TTableCell>
<td>
- <com:TRepeater ID="Repeater2">
-
- <prop:HeaderTemplate>
- <table cellspacing="1" style="border-collapse: collapse;border:1px solid silver">
- </prop:HeaderTemplate>
-
- <prop:ItemTemplate>
- <tr style="background-color:#E6FFE6;">
- <td style="width:70px"><%#$this->Parent->DataItem['name'] %></td>
- <td style="width:20px"><%#$this->Parent->DataItem['age'] %></td>
- <td style="width:150px"><%#$this->Parent->DataItem['position'] %></td>
- </tr>
- </prop:ItemTemplate>
-
- <prop:AlternatingItemTemplate>
- <tr style="background-color:#F0F0F0;">
- <td style="width:70px"><%#$this->Parent->DataItem['name'] %></td>
- <td style="width:20px"><%#$this->Parent->DataItem['age'] %></td>
- <td style="width:150px"><%#$this->Parent->DataItem['position'] %></td>
- </tr>
- </prop:AlternatingItemTemplate>
-
- <prop:FooterTemplate>
- </table>
- </prop:FooterTemplate>
-
- </com:TRepeater>
+ <com:TRepeater ID="Repeater2" OnItemCreated="Page.repeater2ItemCreated">
+
+ <prop:HeaderTemplate>
+ <table cellspacing="1" style="border-collapse: collapse;">
+ </prop:HeaderTemplate>
+
+ <prop:ItemTemplate>
+ <com:TTableRow ID="Row">
+ <com:TTableCell Width="70px">
+ <%#$this->NamingContainer->DataItem['name'] %>
+ </com:TTableCell>
+ <com:TTableCell Width="20">
+ <%#$this->NamingContainer->DataItem['age'] %>
+ </com:TTableCell>
+ <com:TTableCell Width="150px">
+ <%#$this->NamingContainer->DataItem['position'] %>
+ </com:TTableCell>
+ </com:TTableRow>
+ </prop:ItemTemplate>
+
+ <prop:FooterTemplate>
+ </table>
+ </prop:FooterTemplate>
+
+ </com:TRepeater>
</td>
</tr>
</prop:ItemTemplate>
diff --git a/demos/quickstart/protected/pages/Controls/Samples/TRepeater/Sample2.php b/demos/quickstart/protected/pages/Controls/Samples/TRepeater/Sample2.php index a46a3327..96096a8a 100644 --- a/demos/quickstart/protected/pages/Controls/Samples/TRepeater/Sample2.php +++ b/demos/quickstart/protected/pages/Controls/Samples/TRepeater/Sample2.php @@ -51,6 +51,27 @@ class Sample2 extends TPage $item->Repeater2->dataBind();
}
}
+
+ public function repeaterItemCreated($sender,$param)
+ {
+ static $itemIndex=0;
+ $item=$param->Item;
+ if($item->ItemType==='Item' || $item->ItemType==='AlternatingItem')
+ {
+ $item->Cell->BackColor=$itemIndex%2 ? "#6078BF" : "#809FFF";
+ $item->Cell->ForeColor='white';
+ }
+ $itemIndex++;
+ }
+
+ public function repeater2ItemCreated($sender,$param)
+ {
+ static $itemIndex=0;
+ $item=$param->Item;
+ if($item->ItemType==='Item' || $item->ItemType==='AlternatingItem')
+ $item->Row->BackColor=$itemIndex%2 ? "#BFCFFF" : "#E6ECFF";
+ $itemIndex++;
+ }
}
?>
\ No newline at end of file |