Ik heb een 3-tier web applicatie.
In de BLL zitten classes waaronder bijv. "Persoon". Deze heeft een zooitje properties die ik wil displayen in een GridView.
Ik heb daarom een class "Personen" die Inherits List(Of Persoon), waarin bijvoorbeeld functies als ZoekOpNaam etc. zitten. Deze class maakt via de DAL een selectie uit de database en vult zichzelf met een x aantal Persoon, afhankelijk van de uitkomst van de query.
Omdat Personen inherit van List(Of Persoon) kun je deze rechtstreeks als datasource aan bijvoorbeeld een GridView hangen. Helemaal perfect.
Nu heb ik alleen een situatie dat ik bij een postback (een RowCommand van mijn GridView) enige acties moet uitvoeren op de Persoon instance uit de Personen class die bij die row hoort. Iedere Persoon heeft bijvoorbeeld de property Geselecteerd. Zodra ik op een row click (RowCommand) moet ik van die Persoon de property Geselecteerd omzetten van true naar false of andersom.
Hiervoor moet ik alleen in mijn codebehind bij een postback wel de beschikking hebben over de oorspronkelijke instance van Personen. Oftewel, deze moet bij postbacks bewaard blijven en toegankelijk zijn.
Nu heeft de GridView de DataSource property die bij een postback dus Nothing is (aangezien databinding alleen gebeurd If Not Page.PostBack). Verder heeft iedere row een property DataItem, maar die is ook Nothing.
Wel begrijpelijk, maar hoe krijg ik het zo voor elkaar dat mijn Personen class in dit geval bewaard wordt in cache/viewstate/DataKeys zodat ik na een RowCommand wijzigingen kan aanbrengen in de onderliggende classes ?
In de BLL zitten classes waaronder bijv. "Persoon". Deze heeft een zooitje properties die ik wil displayen in een GridView.
Ik heb daarom een class "Personen" die Inherits List(Of Persoon), waarin bijvoorbeeld functies als ZoekOpNaam etc. zitten. Deze class maakt via de DAL een selectie uit de database en vult zichzelf met een x aantal Persoon, afhankelijk van de uitkomst van de query.
Omdat Personen inherit van List(Of Persoon) kun je deze rechtstreeks als datasource aan bijvoorbeeld een GridView hangen. Helemaal perfect.
Nu heb ik alleen een situatie dat ik bij een postback (een RowCommand van mijn GridView) enige acties moet uitvoeren op de Persoon instance uit de Personen class die bij die row hoort. Iedere Persoon heeft bijvoorbeeld de property Geselecteerd. Zodra ik op een row click (RowCommand) moet ik van die Persoon de property Geselecteerd omzetten van true naar false of andersom.
Hiervoor moet ik alleen in mijn codebehind bij een postback wel de beschikking hebben over de oorspronkelijke instance van Personen. Oftewel, deze moet bij postbacks bewaard blijven en toegankelijk zijn.
Nu heeft de GridView de DataSource property die bij een postback dus Nothing is (aangezien databinding alleen gebeurd If Not Page.PostBack). Verder heeft iedere row een property DataItem, maar die is ook Nothing.
Wel begrijpelijk, maar hoe krijg ik het zo voor elkaar dat mijn Personen class in dit geval bewaard wordt in cache/viewstate/DataKeys zodat ik na een RowCommand wijzigingen kan aanbrengen in de onderliggende classes ?