Repeater

Repeater is the term used in VS.Net describing records displayed in a  template format. Do not confuse the VS.Net repeater control with the Tornado's capability to produce a repeater like display. The VS.Net Repeater does not provide any built-in means for editing, sorting, or paging of data. However, these mechanisms could be added programmatically, but would result in a lot of code and effort. Look at the following simple Tornado's repeater. This is already way over the head of the server control <asp:Repeater runat="server">.

Tornado Repeater with Advanced Template

<!--T_Repeater_1.aspx-->

<script language="vb" runat="server">
Sub Page_Load(Source as Object, E as EventArgs)
   Dim fm as string="<TABLE class=ts><TR><TD align=right"
'...Repeater template
   fm=fm & "<TD class='ch'>!EmployeeID!</TD>"
   fm=fm & "<TD align=right class='gh'><B>Name</B></TD>"
   fm=fm & "<TD class='ch'>!TitleOfCourtesy! "
   fm=fm & "!FirstName! !LastName!</TD></TR>"
   fm=fm & "<TR><TD align=right class='fl'><b>"
   fm=fm & "Reports To</b></TD><TD COLSPAN=3 class='r2'>"
   fm=fm & "!ReportsTo!</TD></TR>"
   fm=fm & "<TR><TD align=right class='fl'><B>Title</B></TD>"
   fm=fm & "<TD COLSPAN=3 class='r1'>"
   fm=fm & "!Title!</TD></TR>"
   fm=fm & "<TR><TD align=right class='fl'><b>"
   fm=fm & "Birthdate</b></TD>"
   fm=fm & "<TD colspan='3' class='r2'>"
   fm=fm & "!Birthdate!</TD></TR>"
   fm=fm & "<TR><td align=right class='fl'><b>"
   fm=fm & "HireDate</b></TD><td colspan='3' class='r1'>"
   fm=fm & "!Hiredate!</TD></TR>"
   fm=fm & "<TR><TD align=right class='fl'><B>Address</B></TD>"
   fm=fm & "<TD COLSPAN=3 class='r2'>!Address! - !City! - !Region!. !PostalCode! !Country!</TD></TR>"
   fm=fm & "<TR><TD align=right class='fl'><B>Phone</B></TD>"
   fm=fm & "<TD COLSPAN=3 class='r1'>!HomePhone! x !Extension!</TD></TR>"
   fm=fm & "<TR><TD align=right class='flf'><B>Notes</B></TD><TD Class=r2 COLSPAN=3>"
   fm=fm & "<TEXTAREA COLS=40 ROWS=3>!Notes!</TEXTAREA></TD></TR>"
   fm=fm & "</TABLE>"

'---- Tornado Repeater Code ----
   Dim MCR As New Tornado.Z()
   with mcr
      .dbQP="U=9| S=13| Q=Employees| D=Nwind.mdb| M=G| Gdf=0| MTS=-1|Th=TIt=Tornado Repeater"
      .dbNameMap="field=0|alias=Employees Profile with Hi Color"
      .dbCommonTables="index=EID,FULLNAME|sql=SELECT EmployeeID, FirstName & ' ' & Lastname as Name FROM Employees"
      .dbLookUpFLds="field=ReportsTo|keyindex=EID|lookupindex=FullName"
      .dbGridMagicCell="(;,[]!|~/)field=0|macro=" & fm
      .ASPdbNet
   end with
End Sub
</script>

Another advanced example can be found in the previous illustration T_Magic_3.aspx. This 'alternate' repeater uses the MagicCell filter.

Tornado Repeater with Advanced Template and Inline BMP BLOB

We'll add an Inline image BLOB to the repeater by just adding the additional properties in blue. That all it takes, do not try to view this example using any other browsers except the IE browser because only IE browser supports BMP image file format. If the BLOB is a .gif format, then it work for all.

Note: The Photo field contains the image BLOB in BMP format. BLOB offset for BMP file is 78 and 0 for GIF format.

<!--T_Repeater_2.aspx-->

<script language="vb" runat="server">
Sub Page_Load(Source as Object, E as EventArgs)
'------------- Repeater Template -------------------
Dim fm as string="<TABLE border='0' cellpadding='2' cellspacing='0' width='100%'><TR><TD align=right>"
fm=fm & "<TD class='ch'>!EmployeeID!</TD>"
fm=fm & "<TD align=right class='gh'><B>Name</B></TD>"
fm=fm & "<TD class='ch'>!TitleOfCourtesy! "
fm=fm & "!FirstName! !LastName!</TD></TR>"
fm=fm & "<TR><TD align=right class='fl'><b>"
fm=fm & "Reports To</b></TD><TD COLSPAN=3 class='r2'>"
fm=fm & "!ReportsTo!</TD></TR>"
fm=fm & "<TR><TD align=right class='fl'><B>Title</B></TD>"
fm=fm & "<TD COLSPAN=3 class='r1'>"
fm=fm & "!Title!</TD></TR>"
fm=fm & "<TR><TD align=right class='fl'><b>"
fm=fm & "Birthdate</b></TD>"
fm=fm & "<TD colspan='3' class='r2'>"
fm=fm & "!Birthdate!</TD></TR>"
fm=fm & "<TR><td align=right class='fl'><b>"
fm=fm & "HireDate</b></TD><td colspan='3' class='r1'>"
fm=fm & "!Hiredate!</TD></TR>"
fm=fm & "<TR><TD align=right class='fl'><B>Address</B></TD>"
fm=fm & "<TD COLSPAN=3 class='r2'>!Address! - !City! - !Region!. !PostalCode! !Country!</TD></TR>"
fm=fm & "<TR><TD align=right class='fl'><B>Phone</B></TD>"
fm=fm & "<TD COLSPAN=3 class='r1'>!HomePhone! x !Extension!</TD></TR>"
fm=fm & "<TR><TD align=right class='flf'><B>Notes</B></TD><TD COLSPAN=3>"
fm=fm & "<TEXTAREA COLS=50 ROWS=6>!Notes!</TEXTAREA></TD></TR>"
fm=fm & "</TABLE>"


'---- ASPdb.Net Code ----
Dim ACC As New Tornado.Z()
   With ACC
      .dbQP="U=9| Q=Employees| D=NewNwind.mdb| M=G| Gdf=0,Photo| Mts=-1| Th=Tit=Tornado Repeater with inline BLOB| BM=employees;0"
      .dbSkin = "type=gold| bgpic=diamond_watch.jpg|bgcolor=black"
      .dbNameMap="field=0|alias=Employees Profile"
      .dbCommonTables="index=EID,FULLNAME|sql=SELECT EmployeeID, FirstName & ' ' & Lastname as Name FROM Employees"
      .dbLookUpFLds="fi=ReportsTo|key=EID|look=FullName"
      .dbGridMagicCell="(;,[]!|~/)field=0|macro=" & fm
      .dbBlob = "fi=Photo|co=image/bmp|la=browser|off=78"
      .ASPdbNet
   End With
End Sub
</script>