@MrX, bedankt! Dat ik bepaalde dingen zo snel heb geleerd komt ook door jullie hier... Ik heb al redelijk wat topics geopend en door de reacties heb ik veel ervaring opgedaan. Alsnog bedankt hiervoor

.
Ik vatte het ook niet op als een aanval. Ik begrijp wel dat jullie mijn ontwerpbeslissingen misschien niet helemaal begrijpen, maar ik werk alleen het ontwerp uit wat ik in het begin heb gemaakt. Doordat ik toen totaal niet ervaren was met ASP wist ik niet dat ik nu tegen deze problemen aan zou lopen. Nu ik meer ervaring heb, zal ik de volgende keer deze fouten niet weer maken.
Zoals het systeem nu werkt:
- De gebruiker logt in en na het kiezen van een project wordt een lijst met problemen getoond
- Door op een probleem te klikken, wordt een popup getoond waar de gebruiker dit specifieke probleem kan wijzigen (en extra details krijgt). Er wordt een lock op dit probleem gezet. Als een andere gebruiker dit probleem wil bekijken, zal hij hiervan een melding krijgen en zijn alle velden read-only. Door een refresh zou hij opnieuw kunnen checken of het probleem weer 'vrij' is.
- Na een timeout of het sluiten van het venster zal een reload van het parentform (met de lijst met problemen) plaatsvinden, in de PageOnLoad wordt de lock opgeheven.
Probleem: een gebruiker die de details opent van 1 probleem, kan dit ook doen om de details te bekijken en verder geen wijzigingen doorvoeren. Echter, doordat dit bijna niet voorkomt, is dit volgens mij geen probleem. Ik zal dit nog melden aan mijn stagebegeleider.
Netter is:
De lock wordt pas gezet bij het daadwerkelijk wijzigen. Dit is gevoelsmatiger en volgens het principe van .Net ook meer voor de hand liggend. Probleem is hierbij natuurlijk wel als het volgende gebeurt:
- Gebruiker 1 opent de details en begint alle velden te wijzigen. Gebruiker 2 opent de details en doet hetzelfde. Gebruiker 1 submit het formulier, even later gebruiker 2. De wijzigingen van gebruiker 1 zijn nu ongedaan gemaakt. Echter, het is wel zo dat alleen medewerkers alle velden kunnen wijzigen, een klant kan bijna niets wijzigen nadat een medewerker iets gezien heeft. Gebruiker 1 en 2 zullen ook bijna nooit 2 medewerkers zijn, dus op zich is deze oplossing wel te implementeren. Het probleem van verloren gegane gegevens door kort opvolgende submits blijf je houden. Dit probleem is vast al veel ouder, ik zal jullie daarom ook niet vragen hoe ik dit moet oplossen aangezien ik zelf nog niet heb gezocht.
Mijn vraag is nog wel, wat is niet netjes aan mijn oplossing? Ik vermoed deze 3 punten:
- Lock opheffen in parent m.b.v. javascript
- Lock wordt niet opgeheven als JS uitstaat.
- Lock hoort pas aangeroepen te worden bij daadwerkelijke update en niet bij het openen van het detailvenster.