Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Arkitekturfråga - när ett formulär förändras

Postades av 2005-08-24 10:38:58 - Rickard Robin, i forum arkitektur, Tråden har 10 Kommentarer och lästs av 1100 personer

Tjena! Ponera att man har ett komplext formulär med textboxar, ett par listviews, grid, och lite annat smått och gott som allt relaterar till ett "PersonItem" som finns i en lista av "PersonList".

Vid förändring av något av kontrollerna tillhörande PersonItem så sätter jag en flagga, en booleansk PersonChanged variabel. Sedan när man itererar till annan person i denna lista av personer, så utför jag en koll på PersonChanged. Om något är förändrat så stoppas iterering och frågar om man vill uppdatera nuvarande PersonObjekt till databasen först, eller förlora förändringar.

Det jobbiga sättet jag gör detta nu på är en event som tar hand om alla textboxar.TextChanged som finns, och andra event för andra objekt. Det blir alltså en himla massa events, som körs hela tiden. Kan man göra detta på något smartare sätt ? det bör ju vara en tämligen vanlig syssla detta..

Exempel hur det ser ut idag:

<code>
Private Sub btnForward_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnForward.Click

If Me._PersonChanged Then
MsgBox("Spara först!")
Exit Sub
End If

Me.Cursor = Cursors.WaitCursor
Me.intCurrentPersonIndex += 1
Me.fnUpdate_PrevNextButtons()
Me.fnLoadCurrentPerson()
Me.Cursor = Cursors.Default
End Sub


Private Sub PersonChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtAdress.TextChanged, txtCO.TextChanged, txtEfterNamn.TextChanged, txtEfterNamn.TextChanged, txtEpost.TextChanged, txtFornamn.TextChanged, txtMobil.TextChanged, txtOrt.TextChanged, txtPnr.TextChanged, txtPostnr.TextChanged, txtTfn.TextChanged, rtAnteckningar.TextChanged
Me._PersonChanged = True
End Sub

'och andra events för andra typer av kontroller...


</code>


Svara

Sv: Arkitekturfråga - när ett formulär förändras

Postades av 2005-08-24 11:02:08 - Daniel Karlsson

Skapa ett typat dataset som håller din data, gör sedan dina kontroller databundna och använd sedan en bindingmanager för att hålla koll på din data

Läsa, uppdatera data mot databasen gör du med en dataadapter

Lycka till


Svara

Sv:Arkitekturfråga - när ett formulär förändras

Postades av 2005-08-24 11:36:11 - Rickard Robin

Daniel: Tack för input! Funkar jättebra när det är funktionsbaserad programmering.. Allt befinner sig i objekt här dock så då kan jag inte använda dataset eller adapter =(


Svara

Sv: Arkitekturfråga - när ett formulär förändras

Postades av 2005-08-24 12:55:10 - Roger Alsing

du måste implementera ibindinglist på dina listor och ieditebleobject på dina objekt.

då kommer det funka precis som med datasets


Svara

Sv:Arkitekturfråga - när ett formulär förändras

Postades av 2005-08-24 13:31:44 - Rickard Robin

Menar du det? DET måste jag testa. Tack för input !


Svara

Sv:Arkitekturfråga - när ett formulär förändras

Postades av 2005-09-05 18:06:08 - Patrik H

Hej

Sent svar men kanske kan vara till nytta. Att implementer samtliga interface som behövs för att databinding skall fungera kan vara ganska jobbigt.

Kika på Objectviews, http://sourceforge.net/projects/objectviews/
(Jag tror du får plocka den koden som ligger på cvs'en för att du skall få den senaste versionen)

Har inte själv använt det men det verkar ganska intressant.
Här är en liten forumtråd som också kan vara intressant, http://nhibernate.sourceforge.net/forum/viewtopic.php?t=504&start=15


Svara

Sv: Arkitekturfråga - när ett formulär förändras

Postades av 2005-09-06 16:29:54 - Ola Lindfeldt

Robin, det blir INTE "funktionsorienterat" bara för att man använder ett Dataset..
Dataset är objekt, och det är ett utmärkt objektorienterat sätt att hantera data på.
Däremot vill jag absolut avråda från Databinding, det kostar mer huvudvärk än vad det smakar gott..

/Ola


Svara

Sv:Arkitekturfråga - när ett formulär förändras

Postades av 2005-09-06 21:42:40 - Peter Ilis

Men det är lättare att det blir funktionsorienterat med datasets..
Håller med om att Dataset kan skapa huvudvärk vid data-bindning. Och att programmera/systemera
objektorienterat och samtidigt använda datasets för annat än ett enkelt sätt att lagra temporär data tror
jag krånglar till det hela.

Som svar på frågan så brukar jag låta objektet ta hand om kontrollen om det är ändrat. Alltså stoppar
man in alla värden från formuläret till t.ex. person-objektet. Sedan kan man fråga objektet om det har
ändringar mot sina orginalvärden, typ Person.HasChanges().

Mvh
Peter


Svara

Sv: Arkitekturfråga - när ett formulär förändras

Postades av 2005-09-07 10:32:08 - Ola Lindfeldt

Ilis >> Men det är lättare att det blir funktionsorienterat med datasets..

Eeeh? Det är "alltid lättare" att det bli funktionsorienterat om man inte tänker efter före... :)













Svara

Sv:Arkitekturfråga - när ett formulär förändras

Postades av 2005-09-07 11:53:25 - Rickard Robin

Det första är ju redan löst med att objekten har ju sina .HasChanges egenskaper så det kollar man innan man itererar till nästa post. Då frågar man om man vill spara förändringar eller förkasta dem, och det funkar smidigt.

Det andra är mer en UI fråga, såfort en textbox eller något ändras på detta personformulär vill man ju aktivera "Update" knappen (man vill se att personen har förändrats och förstå att man bör uppdatera den)
Idag så använder jag en funktion som tar hand om alla TextChanged() event och aktiverar den knappen. Och när man tryckt update så gråas den ut igen tills något har förändrats
Är detta rätt väg att gå ?

ex: Function activateUpdateBtn() handles txtName.changed, txtPhone.changed etc etc etc..


Svara

Sv:Arkitekturfråga - när ett formulär förändras

Postades av 2005-09-08 15:16:27 - Roger Alsing

>>Däremot vill jag absolut avråda från Databinding, det kostar mer huvudvärk än vad det smakar gott..

på vilket sätt menar du att databindning i winforms är besvärligt?


Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 880
27 965
271 776
588
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies