torsdag den 29. januar 2015

Ændre ID i ASP.NET Webforms i Repeater ødelægger ViewState


Jeg vidste det faktisk godt, men tænkte mig ikke om og nu er det for sent fordi der er lavet så meget baseret på denne model så det kan ikke ændres.

Husk for guds skyld ikke at ændre ID'er på ting fra din repeater når det kommer ud, for så smadrer du alt logik for ASP.NET Webforms når du skal klikke på en knap og få alt tilbage - for så ved den pludseligt ikke hvilke kontroller der er hvad.
Den kan ikke selv mappe det tilbage fordi ID'erne har ændret sig i forhold til hvad den ville give dem, så den mapper dem ikke ind i ASP.NET og det kan give dig en masse problemer.

Så hvis du har brug for fx at vide hvilket nummer, version, udgave, årstal noget er knyttet til, så lav en attribut på elementet som du ved hvad hedder og send det så afsted. Så sikrer du dig at du ikke laver ændringer i det som ASP.NET Webforms forsøger at lave så smart.

Hvis man bare undgår at ændre de ting som ASP.NET selv laver om så er du sikker, og blot tænker over hvordan det kan løses uden at være knyttet op på ID, så kan du lave din egen attribut med MyID="53154" og finde den på det.

Ingen kommentarer:

Send en kommentar

Kan du lide mit indlæg, har en kommentar, forslag eller andet på hjerte så skriv venligst