login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Save required na edit form

Offline cloudstrife - 13/01/2010 17:36
Avatar van cloudstrifePHP beginner Hoe kan je ervoor zorgen dat bv bij het verlaten van een form je de vraag krijgt of u de gewijzigde gegevens al dan niet wil bewaren?

Ik heb nu in mijn applicatie een laag met business objecten en een view laag met forms en controls. De data wordt weergegeven door bv de waarde van een propertie van een business object in een textbox te stoppen. Maar hoe kan ik nu makkelijk gaan valideren of de originele waarde gewijzigd is?

Ik had al gedacht om via de setter een soort state te gaan bijhouden, maar waarschijnlijk is er wel iets anders beschikbaar dat ik op het niveau van de view laag kan gebruiken...

9 antwoorden

Gesponsorde links
Offline Abbas - 13/01/2010 17:43
Avatar van Abbas Gouden medaille

Crew .NET
Bij het plaatsen van de objectwaarde in de TextBox zet je die waarde ook in een variabele. Als je dan je Form sluit kan je nagaan of de waarde van de TextBox gelijk is aan de waarde van de variabele. Voorbeeld:

  1. 'naam van het User-object in de TextBox zetten
  2. User u = new User("titjes", 1985)
  3. txtNaam.Text = u.Naam
  4. Dim strNaam As String = u.Naam

En dan bij het sluiten van de Form:

  1. If strNaam.Equals(txtNaam.Text) Then
  2. 'geen wijzigingen
  3. Else
  4. Dim dr As DialogResult("Er zijn wijzigingen. Doorgaan?", "Info", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
  5. If(dr == DialogResult.Yes) Then
  6. 'afsluiten
  7. Else
  8. 'iets anders doen
  9. End If
  10. End If
Offline cloudstrife - 13/01/2010 17:58
Avatar van cloudstrife PHP beginner Dan kan ik denk ik beter via de setter van de property de state van mijn object gaan wijzigen.
Offline Mario - 14/01/2010 12:51 (laatste wijziging 14/01/2010 12:52)
Avatar van Mario Crew algemeen Je kunt ook alle change events van de texboxes opvangen en deze naar je setter property sturen. Handig als je veel textboxes op je formulier hebt staan.

mvg,
Mario

voorbeeld

  1. Public Class Form1
  2.  
  3. Private Sub AllTextChange_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged, TextBox3.TextChanged
  4. Label4.Text = "CHANGES MADE IN TEXTBOXES"
  5. End Sub
  6.  
  7. End Class


Offline Abbas - 14/01/2010 15:44
Avatar van Abbas Gouden medaille

Crew .NET
En wat dan als ik iets wijzig in een TextBox en dan terug naar het originele plaats? Dan zijn er in feite geen wijzigingen! 
Offline Mario - 14/01/2010 16:36
Avatar van Mario Crew algemeen Of je dan op saven of op annuleren drukt maakt ook niets meer uit dan hé, beide zijn goed dus geen probleem 

Offline cloudstrife - 14/01/2010 21:10
Avatar van cloudstrife PHP beginner Ik ga gewoon gebruik maken van de setter van mijn properties, daarin kan ik de inkomende waarde vergelijken met zijn huidige waarde en indien nodig een propertychanged-event afvuren.
Offline Abbas - 14/01/2010 21:11
Avatar van Abbas Gouden medaille

Crew .NET
Huh? Stel de initiele waarde van txtNaam = "titjes". ik wijzig deze naar "tiet" en daarna terug naar "titjes". Op zich zijn er dan geen wijzigingen maar toch zal het programma dan aangeven dat er een wijziging is! Snap je? 
Offline cloudstrife - 14/01/2010 21:23
Avatar van cloudstrife PHP beginner Hangt ervan af wanneer je de properties van het object gaat invullen eh.
Offline Mario - 14/01/2010 22:45
Avatar van Mario Crew algemeen Inderdaad titjes, enkel in dat geval doe je een save wat eigenlijk niet nodig is. Alhoewel je dan ook nog eventueel kunt annuleren.

Wil je 100% controle zul je ze idd allemaal moeten vergelijken.
Wat extra programmeerwerk maar niet onoverkomelijk.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.339s