webForumDet fria alternativet

Nästlade repeaters eller for-loopar?

.NET

5 svar · 515 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#1

Hej! Jag ska lista ut en massa data, dels en vanlig lista men sen också i varje rad så ska det i sin tur listas ut ytterligare saker. Har två lösningar men vet inte riktigt vilken man ska använda?

Alt1. En repeater som i sin tur innehåller en repeater. För varje rad så fyller jag den inre repeatern (onitemdatabound) med data som är beroende av vad den yttre repeatern fått för data. Fördelar som jag kan se är att det blir mer skalbart och snyggare kod. Nackdelar är ju att det blir en massa db-kopplingar, två nya för varje rad för att vara exakt.

Alt2. Man hämtar alla data på en gång. Men sedan får jag göra diverse for-loopar och arbeta med datatables för att lägga allt på plats så som jag vill ha det. Fördelar är väl att man hämtar alla data på en gång och bara har en enda repeater. Nackdelar är ju att det blir rätt grötig kod och jag tvingas skapa html också i codebehinden för att bygga upp designen.

Finsn det fler alternativ? Vilket är snabbast?

Medlem sedan jan. 20022 440 inlägg
#2

alltså repeatern skapades väl för att slippa nästlade for loopar?? I varje fall tycker jag det är fasligt mycket enklare och snabbare i utvecklings aspekt.

Medlem sedan sep. 2005673 inlägg
#3

Jo, men jag får ju i så fall nästlade repeaters vilket iofs fungerar bra. Men jag vet inte hur prestandakrävande det är med tanke på att det blir en massa fler (men mindre) anrop till databasen?

Medlem sedan maj 20012 812 inlägg
#4

Gör ett mellanting av båda.

Använd dig av repeaters som är nästlade, men hämta alla data på en gång och spara ner i en DataTable eller DataSet. Sedan låter du dina repeaters hämta delmängder från denna DataTable eller DataSet med hjälp av frågor eller filter (tror det heter DataView).

Nu får du det bästa av 2 världar. Du hämtar alla data på en gång och sedan får du ändå en snygg kod.

- M

Medlem sedan jan. 20022 440 inlägg
#5

I det läget kanske det är idé att använda sig av ett dataset och lagra all datan i och sedan låta dian repeaters använda datasetet för att slippa alla vändningar till databasen.

Medlem sedan sep. 2005673 inlägg
#6

Ok, tack, ska jag testa! :)

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)