Avatar billede nielshenrik1968 Nybegynder
27. maj 2008 - 08:48 Der er 1 kommentar og
2 løsninger

Brug af combobox der er bunden til en datasource

Jeg er i gang med at lave en formular i Visual Studio, hvor i der bl.a. er en combobox, som brugeren kan vælge data fra og gemme disse data ned i en database, hvilket sker v.hj.a. kode og virker fint.

Problemet er at de data der kan vælges i comboboxen er bruger afhængige, hvilket jeg pt. styrer ved at lave comboboxen bound, således at jeg har bundet comboboxen til en datasource med et brugerafhængigt filter. Når 2 forskellige brugere prøver at se hinandens gemte records, så giver det problemer.

F.eks. Bruger X kan vælge værdierne 1 og 2 i comboboxen og har gemt værdien 1. Bruger Y kan ikke loade denne record, fordi hans valgmuligheder i comboboxen kun kan være værdierne 3 og 4.

Datasource ser i princippet således ud: Select EMNE from Tabel WHERE BRUGER = 'X (eller hvem der nu er logget på)'.

Jeg er rimelig grøn i C# og har en fornemmelse af at det skal gribes helt anderledes an - men gode ideer efterlyses til hvordan.
Avatar billede aaberg Nybegynder
27. maj 2008 - 14:45 #1
Hvad er det egentligt meningen der skal ske? Skal de kunne se hinandens værdier?
Avatar billede nielshenrik1968 Nybegynder
28. maj 2008 - 07:31 #2
Jo, det er meningen at de skal se hinandens værdier, og i princippet skal de også kunne ændre dem.

Problemet lige nu er, at hvis bruger X har gemt værdien 1 i comboboxen, så kan X selvfølgelig godt se denne record igen og finde værdien 1 i comboboxen. Men hvis bruger Y prøver at åbne samme record, så får jeg en fejl, idet comboboxen er bundet til en datasource som har filtreret værdien 1 fra. Datasourc ser ca. således ud: Select EMNE from Tabel WHERE BRUGER = 'Y (eller hvem der nu er logget på)'.

Jo mere jeg tænker over det, jo mere forkert tror jeg der er at binde comboboxen op på en datasource med filter (WHERE CLAUSE) - måske kan jeg lave en form for event på comboboxen der filtrere de uønskede værdier fra når brugern klikker på denne, jeg syntes bare ikke lige jeg kan finden en event der passer, som f.eks. i en VBA formular, hvor man kan bruge en OnActivate event. Håber det giver bedre mening nu.
Avatar billede nielshenrik1968 Nybegynder
28. maj 2008 - 13:55 #3
Det ser ud til at jeg har fundet en brugbar løsning på mit på mit problemet. Problemet var at jeg havde bundet comboboxen til en datasource med et filter, som var brugerafhængigt.

En mere korrekt løsning er at lave comboboxen ubunden og så bruge PageLoad til at indlæse comboboxens mulige værdier for den akutelle bruger og samtidig huske at tilføje den gemter værdi til comboboxens mulige værdier "drpEmnetyper.Items.Insert(0, rd["EMNETYPE"].ToString());"

Denne metode virker, måske ikke den mest smarte, men den fungere pt.
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