26. marts 2003 - 17:41Der er
16 kommentarer og 1 løsning
vis et spørgsmål afhængig af svaret på det foregående i ASP.NET
jeg er meget grøn i .net og objektorienteret programmering i det hele taget. men jeg er ved at udarbejde et spørgeskema jeg skal bruge til et projekt som jeg skal lave i aps.net. men når et spørgsmål er afhængig om man har svaret ja eller nej i det foregående vil jeg gerne have at der kun står det spg som er relvant for det svarede. svarene bliver givet ved hjælp af radiobuttons.
hvis spg1 foreksempel er "Har du prøvet pacman? ja/nej" svar ja: "synes du at det er sjovt? ja/nej" svar nej: "kunne du tænke dig at prøve det? ja/nej"
hvordan gør jeg, så det kun er det relevante spg der bliver vist? jeg har prøvet lidt med nogle labels, men har ikke rigtig kunne få det til at virke... :( jeg bruger web matrix i øjeblikket...
ligger dine spm i en database? i så fald er det ikke det store problem, da det kan fixes bare ved at strukturere den fornuftig. Man kunne f.eks. forestille sig følgende
id parent condition question 1 0 true Har du prøver pacman? 2 1 true Synes du at det er sjovt? 3 1 false Kunne du tænke dig at prøve det? 4 2 true Hvad var det sjoveste ved det? 5 2 false Hvorfor var det ikke sjovt?
ok... tak for det. det virker meget fornuftig :) men som sagt... rimelig grøn :p så hvis du eller en anden sq ha lyst til at vise et eks. med bare et enkelt spg+subspg ville det være en kææmpe hjælp. jeg bruger vb.net... men jeg må jo prøve mig lidt frem og se om jeg kan finde hoved osv i det.
undskyld ventetiden! jeg har lavet klassisk asp, med querystrings og access databaser... så almindelige insert, delete osv kommandoer har jeg rimelig styr på. selvom det også er ved at være et stykke tid siden.
heh, var lige i gang med at prøve at skrive et eksempel med noget autopostback, og radiobutton.value men det kom på ingen måde til at se vellykket ud :p men det giver måske en ide om hvad jeg tænkte på... men jeg er helt åben for input
bardo>> så er fremgangsmåden ikke helt så forskellig... det der skal ske er, at på forsiden (default.aspx) skal du vise spørgsmålet der har parent = 0 (SELECT * FROM tbl WHERE parent = 0) Her til har du selvfølgelig svarene ja/nej. Det der så skal ske når man vælger f.eks. ja, og trykker på knappen svar, ja, så bliver man sendt videre til siden default.aspx?id=1&answer=true. Her laver du så en ny query til databasen (SELECT * FROM tbl WHERE parent = "+ Request.Param("id") +" AND condition = "+ Request.Param("answer")) Det spørgsmål du nu får ud skriver du så på siden, men svarmulighederne ja/nej, og så fremdeles.
Det du evt. kan gøre for at tjekke om brugeren har svaret på det sidste spørgsmål, er at du kan eksekvere en query der tjekker om det spørgsmål-id der skal til at vises har en parent.
SOm du måske kan se, og er fremgangsmåden ikke særlig stor i dette tilfælde mellem asp.net og det gamle asp... men nu er det jo også et forholdsvis simpelt "produkt" du skal have. asp.net's rigtige styrke kommer når du skal til at udvikle større applikationer som kræver en masse kode. Her opdager man pludselig hvor ren en kode man kan skrive, og hvor dejligt det er at kunne separere design og kode :)
ok... det var faktisk et meget godt svar. og det sq undre mig meget hvis jeg kan ikke kan bruge det til noget. men lige i det her tilfælde er jeg bange for vi går lidt skævt af hinanden. spørgsmålet som udløses af et bestemt svar skal stå under det foregående (hvis man nu feks. trykker forkert første gang), som igen står mellem andre spørgsmål. Dvs. jeg har en side med feks. 6 spørgsmål, hvor spørgsmål 3 udløser et spørgsmål 3A, som kommer til at stå neden under spørgsmål 3, og over spørgsmål 4. Jeg kan godt lave en simpel label som vises alt efter hvad der svares, men jeg kan ikke finde ud af hvordan jeg får smidt en radiobutton på også :( i asp ville det ikke være det store problem, men jeg synes ikke jeg kan få lavet en variabel der virker med koden for en radiobutton i. ellers burde man vel bare q gøre det med en if RadioButton1.Checked: label(spg) + variabel (radiobuttons)?! men tak for indsatsen so far... så får jeg da lidt ekstra for mine point ;)
jeg prøvede at gennemskue de der sessions, men det gik ik så godt... håber det kan undskyldes med at jeg er rimelig træt :) jeg har i hvert fald (igen) omgået problemet ved at bruge OnSelectedIndexchange på mine radiobuttonlists, til at afgøre hvilke spørsmål og svar muligheder der er synlige. lidt en hm-løsning, men jeg q ik rigtig vente meget længere med at få det færdigt. men som nævnt i den anden kan du bare poste et svar hvis du vil have nogen point. Så kan jeg jo satse på du kan give nogle flere gode råd næste gang jeg er ved at rive håret af min hoved, og bliver nød til at ty til eksperten :)
bardo>> hvad er det som kikser med sessions? du kan gemme så godt som alt i en session, du skal bare huske på at det bliver gemt som typen object, så du skal huske at caste det tilbage til den rigtige type, når du skal tjekke værdien :)
det var mest fordi der både skulle oprettes en web.config med ip og port, og alt muligt jeg ik lige havde styr på. samt at alle de eksempler jeg kunne finde omkring det enten var c# eller nogle dybt avanceret kodeeksempler... så jeg valgte den nemme løsning. men jeg må jo prøve at eksperimentere lidt med sessions en anden gang...
bardo>> hm... mon ikke du er faldet over eksempler som bruger en database til at gemme sessions i? hvis de fleste artikler du fandt var skrevet i c#, mon ikke du bare skulle skifte sprog så `? ;)
det har jeg faktisk også overvejet meget seriøst... vb.net virkede bare meget mere bekendt efter at jeg har lavet noget almindelig asp, og jeg absolut ingen erfaring har med objekt orienteret programmering. derudover læste jeg engang at hvis man gerne ville lave c# var det en god ide først at begynde med noget c++ og arbejde sig op derfra. men med tiden har jeg så læste meget om hvordan vb.net og c# ligner hinanden meget, og burde være nemt at flytte imellem. men det hele bunder i at jeg har et projekt jeg gerne vil lave i .net der skal være færdigt om 1½ måneds tid, og jeg var bange for at jeg skulle bruge for lang tid på først at sætte mig ind i hvordan c# virker. men jeg har overvejet meget stærkt de sidste par dage om jeg ik bare skulle tage springet. har også fået indtryk af at der er flere jobmuligheder med C#. ellers står den på dagpenge til sommer :p
bardo>> c# virker altså på samme måde som vb.net. Forskellen ligger i syntaksen, hvor c# bruger c-syntaksen, ligesom javascript, java, c++ m.fl. Det skulle være den eneste fordel ved at komme fra c++, hvis man vil igang med c#. Selve virkemåden er den samme som vb.net, da det jo er det samme framework du koder i.
ja, det har jeg så fundet ud af... og efter at have siddet og kigget nogle af koderne på http://samples.gotdotnet.com/quickstart/aspplus/ virker det heller ik så forfærdeligt skræmmende i forhold til vb.net mere. så det er jo bare med at komme igang med nogle simple eksempler igen, og tage den derfra... men hvis du stadig gerne vil have 30 point smider du bare et svar. nu har jeg mere eller mindre besluttet mig for c# :)
hehe... jamen, det lyder godt... så var min tid i dette spm da ikke helt spildt ;)
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.