Avatar billede agertoft Nybegynder
20. maj 2005 - 22:18 Der er 5 kommentarer og
1 løsning

Hente værdier i ArrayList

Jeg har en ArrayList, som jeg opretter ved min erklæring af mine variabler. I Page_Load fylder jeg så dette array med data. Jeg har en linkbutton på min side, og den metode, der eksekverer, når jeg har trykket på min linkbutton, skal tage fat i næste element i denne arrayliste.

Dvs hver gang jeg trykker på min linkbutton, skal den hive fat i næste element i min arrayliste og behandle dette.

Problemet er, at arraylisten er tom, når jeg når til denne metode. Hvor bliver indholdet nu af?

Jeg ved det er et simpelt spørgsmål, men jeg har siddet og stirret mig blind på det tror jeg. Hvorfor er det, at dataen i arraylisten forsvinder i metoden udenfor Page_Load, hvor dataen bliver fyldt i?
Avatar billede agertoft Nybegynder
20. maj 2005 - 22:34 #1
Jeg fylder min arrayliste indenfor "if (!IsPostBack)". Jeg kunne selvefølgelig smide den ud herfra, og det ville jo højest sandsynligt løse mit problem. Men det vil jo ikke være så performance-venligt...
Avatar billede jakobg Nybegynder
21. maj 2005 - 00:41 #2
Har du overvejet at smide din arraylist i viewstate?

Når siden post'er til sig selv, glemmer den alt om de variable du har erklæret tidligere - med mindre du altså gemmer dem i session, viewstate eller noget helt andet, som kan overføre værdier mellem pagerequests.
Avatar billede agertoft Nybegynder
21. maj 2005 - 00:46 #3
Ja, det har jeg netop gjort og det virker. Men skulle til at stille spørgsmålet, om det er hensigtsmæssigt at smide en ArrayListe i ViewState. Men det kan jeg forstå, at det faktisk mere eller mindre er den eneste løsning?
Avatar billede jakobg Nybegynder
21. maj 2005 - 01:02 #4
Der er flere forskellige løsninger, og de har naturligvis hver deres fordele og ulemper. Hvordan man gør det, er i den sidste ende en smagssag.

Viewstate er nem at arbejde med, men den kræver at man post'er hele tiden, og hvis du har mange controls på din side, så kan viewstate gå hen og fylde MEGET til sidst. Især datagrid og de andre "datatunge" controls kan ende med at blive noget bøvl. Jeg har oplevet sider, hvor html'en fyldte flere MB primært pga. viewstate.

Så vær forsigtig, og prøv evt. nogen alternativerne. Sessions eller cookies. Eller du kan lave et helt alm. hidden input felt, hvor du smider indholdet af din arraylist med rundt.
Avatar billede agertoft Nybegynder
21. maj 2005 - 01:08 #5
Jeg smider ikke hele datagrid objekter ind i ViewState, men "kun" en ArrayListe med 30-100 elementer i. Så løsningen som den er nu ser ud til at køre helt fint. Ellers må jeg prøve en af de alternativer, som du nævner.

Tak for det uddybende svar. Smid et :)
Avatar billede jakobg Nybegynder
21. maj 2005 - 09:08 #6
Svar... :)

Mht. datagrid og viewstate, så mente jeg at hvis du har et datagrid (eller anden datatung control) på din side, så gemmer den automatisk en masse i viewstate. Datagrid'et er med andre ord allerede "i viewstate", med mindre du sætter enableviewstate=false.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester