onsdag, augusti 25, 2010

Repeaters

Det står mycket blaj om repeaters (asp) på nätet alltså, folk har verkligen ingen koll.

För det första så finns det ingen anledning att köra Eval() när man kan casta direkt till objektet man bindat mot. Varför svänga förbi eval som dessutom använder sig utav reflection (kostsamt) när man kan använda objektet rakt av? Begriper inte det.

<%# Server.HtmlEncode(((verifiable)Container.DataItem).display) %>

Lätt som en plätt.
En annan sak folk inte verkar fatta är att man kan ha nested repeaters. En repeater inuti en repeater alltså. Så om man har en lista, med en klass, och klassen innehåller en annan lista. 

Så är det bara peka datasource mot listan i den djupare nivån!

asp:Repeater ID="rptInv" runat="server" DataSource="<%# ((verifiable)Container.DataItem).comp %>"
Lätt som en plätt!

Till sist, så kan man i den djupare repeatern komma åt saker i den övre, parent repeatern. Verkar som att ingen fattat det heller, och gör märkliga lösningar med literals och diverse fulhack. Men varför krångla till det, när man kan använda sig utav .Parent. 

<%# ((verifiable)((RepeaterItem)Container.Parent.Parent).DataItem).id%> 

Inget mystiskt där heller. Förutom att du får en RepeaterItem genom Parent, inte själva objektet.

Det var allt för denhär gången. 

Inga kommentarer: