Avatar billede lasserasch Juniormester
03. februar 2007 - 14:48 Der er 9 kommentarer og
1 løsning

Kun tal i en enkelt datagridcolumn

Hejsa.

Hurtigt spørgsmål.

Bruger VS 2005 med det standard datagridview der ligger heri.

Kan det lade sig gøre at begrænse en enkelt column til kun at kunne indeholde decimal værdier?

/Lasse
Avatar billede Syska Mester
03. februar 2007 - 15:04 #1
forklar ... hvad indeholder databasen ?

Du kan bruge format feltet .... {0:d} mener jeg det skal se ud ... men kan ikke helt forstå hvor du vil hen ...

Den column indeholder jo hvad der står i din database.

// ouT
Avatar billede lasserasch Juniormester
03. februar 2007 - 15:20 #2
Tjoe...

Det er sådan at det skal bruges til et kalkulations system.

Der er flere grids på formen, men hvis jeg lige holder mig et at forklare det første grid. Det er et grid som indeholder råvarer.

Her har jeg felterne : varenummer, varenavn, pris.

Felterne varenummer og varenavn er readonly. Feltet pris skal brugeren kunne redigere i.

Hver gang formen loades, så fyldes dette grid med data fra en SQL database. Ud fra den værdi, som står i pris feltet, laves en beregning. Det som brugeren ændrer i pris feltet, gemmes altså ikke når formen lukkes igen.

Hvis prisfeltets værdi altså var 100, så kunne beregningen se sådan ud :

100*45

Det resultat man her får, er prisen på en færdigvare, som står i et andet grid på samme form.

Brugeren kan så ændre den værdi fra 100 til f.eks. 50. Så snart han forlader feltet, har jeg en eventhandler, som genberegner færdigvarens pris. Dvs. med formlen 50*45 i stedet for 100*45.

Det som jeg gerne ville undgå, var at skulle validere om det brugeren har indtastet i prisfeltet nu også er tal.

Jeg kan sagtens gøre det, men det ville bare være meget nemmere, hvis man kunne begrænse indtastningsmulighederne til tal og komma i det ene felt i mit grid.
Avatar billede Syska Mester
03. februar 2007 - 15:28 #3
ahhhhhhhhhhhhh, nu er jeg med ...

men pas ... måske:
http://ajax.asp.net/ajaxtoolkit/FilteredTextBox/FilteredTextBox.aspx

Men kræver jo lidt mere ... der kan de jo stadig skrive 23,34,43 ... hvilket jo ikke er et tal ....

Tror du skal se om du kan lave Regex med JavaScript med mindre nogle af de ajax komponenter måske kan gøre det for dig ... held og lykke ...

// ouT
Avatar billede lasserasch Juniormester
03. februar 2007 - 15:33 #4
Ja, ok.... Nu er det desværre bare ikke webbaseret, så ajax kan jeg vel ikke rigtig bruge!

Ok, jeg prøver mig frem!

/Lasse
Avatar billede Syska Mester
03. februar 2007 - 17:03 #5
ohh, gør det jo kun endnu nemmere .. så er det jo bare at lave en regex som tjekker hver gang brugeren skriver noget i rækken ....

// ouT
Avatar billede lasserasch Juniormester
03. februar 2007 - 17:04 #6
Hvad er en regex???

/Lasse
Avatar billede Syska Mester
03. februar 2007 - 17:12 #7
Avatar billede Syska Mester
03. februar 2007 - 17:14 #8
http://regexlib.com/Search.aspx?k=decimal

nummer 2 på den side .. med lidt ændringer
Avatar billede lasserasch Juniormester
03. februar 2007 - 17:56 #9
Ja, okay. Men så er man jo ude i noget validering igen ik'? Har kun lige skimmet siderne.

Det var valideringen jeg gerne ville undgå. Kunne være der var en property eller noget for en datagridview column, hvor man kunne sætte hvad der kunne stå i feltet.

/Lasse
Avatar billede Slettet bruger
07. februar 2007 - 17:55 #10
Hvis den underliggende datatype f.eks. er en double bør man ikke kunne indtaste ugyldige tegn.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester