18. september 2004 - 14:21Der er
10 kommentarer og 1 løsning
Datagrid - indsætte og aflæse data
Hejsa
Mit spørgsmål lyder meget enkelt. Hvordan kan jeg indsætte en række i et datagrid, altså med andre ord bibeholde de rækker der er og tilføje en ny. Dernæst, hvordan kan jeg på et givet tidspunkt aflæse de indsatte rækker.
Skal jeg bruge en bagvedliggende data struktur... Vil gerne undgå at skulle lave midlertidige lagringer i en database.
Det vil vanligvis nok ikke være særlig interessant at hente værdier som du selv har smidt ind i griddet ved normal databinding, men hvis der er data som brugeren har redigeret i, ville det være relevant at hente dem.
hvis der er redigeret vha. en textbox :
foreach(DataGridItem dgi in this.SomeDataGrid) { string text = ((TextBox)dgi.Cells[0].Controls[1]).Text; }
Det er en faktura formular, hvor brugeren vælger et produkt, stk, pris og rabat og indsætter kolonnen i datagriddet. Dette sker ml. 1-6 gange. Det kan være der er behov for at ændre i en tidligere række eller slette denne. Til sidst skal de kunne trykke på print, og fakturaen udskrives.
Jeg vil bare gerne undgå at lagre det i en database før alle data er korrekte. Mit problem er, hvor skal jeg lagre disse data midlertidigt. For har jeg dem først lagret et sted, er det jo intet problem at hente eller ændre.
hov - jeg fik lige gæster, så der går nok lige en halv time. (du kan gemme data flere steder - Session vil nok være det mest relevante i denne forbindelse).
du kan lave en snild "Sessionvariabel" sådan her :
null er så det der bliver returneret hvis der ikke er noget... men du kunne jo have en defaultværdi istedet - måske mere relevant med andre typer som :
Ok :) Så smutter jeg lige ned og træner. Kroppen skriger på at komme væk fra tastaturet.
Men kan jeg så gemme hele objekter, såsom en arraylist, der pointer til en række objekter?
For skal gemme 5 værdier pr. produkt, dvs. max 30 værdier. Og vil helst lagre dem så forståeligt som muligt, da jeg ikke bliver ham der skal vedligeholde systemet.
du kan gemme hvilket som helst objekt i session... ingen ballade der. man skal så bare lige have i mente, at datamængden vil blive ganget op med antallet af brugere...
Selvf., var bare ikke klar over, at muligheden eksisterede til at gemme andet end simple datatyper i en session. Og med et max på 10 brugere, så tror jeg nok det går :)
Hvad vil en alternativ måde være, hvis jeg nu stod overfor et meget større brugerantal. For cookies virker ik så fikst igen.
En alternativ måde er at gemme tingene i viewstate, men det går langsomt, og kræver at værdierne kan serialiseres. du kommer derfor hurtig ud i, at skulle implementere siralisering af dine egne typer, og du kommer til at smide en hel del mere html ud til klienten. det er meget normalt at gemme "opslagsdata" i Cache eller Application-objektet, og så sørge for at gemme specifikke brugerdata (som man så forsøger at holde på et rimeligt nineau) i Session.
du har også muligheden for at benytte en stateserver.... en sql-database hvor sessiondata gemmes istedet for i memmory. (en stateserver er utrolig nem at sætte op - man skal stort set ikke foretage sig noget selv :o)
halløj igen dcasse :o) et svar her også, hvis du kunne bruge det - sig til hvis der er mere. hold dig munter. mvh
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.