Avatar billede danm Nybegynder
25. september 2007 - 23:44 Der er 3 kommentarer og
1 løsning

Vise en liste med varer (til en webshop)

Hej

Jeg vil prøve at oprette en webshop i ASP.net med Visual studio 2005 og bruge sproget basic.

Alle varerne smider jeg ind i en access database, og for nemhedens skyld starter jeg med tre felter i databasen (gruppe, navn, pris)

"Gruppe" skal være overskriften på varegruppen (dette bliver selvfølgelig et tal, der bliver joinet med en anden tabel som indeholder navnet).

Mit problem er så at vise det. Der skal være en række linjer ned ad siden, med tre "felter" (uden egentlig at være i felter som feks. datagrid linjer). Linjen skal bare være Navn, prisen og en knap/link der bare lægger varen i kurven.
Men hvordan gøres dette nemmest når der skal være overskrift. Hvis det var computere der skulle sælges ville det stå sådan:

Bundkort
ASUS P bla bla          100      køb
ABIT P bla bla          100      køb

Procesorer
Intel bla bla            100      køb

Jeg har kun prøvet at bruge et gridview, hvor jeg jo kan få en lang liste, men hvordan kan jeg lave denne type visning med flere overskrifter?
Min umiddelbare ide var at bruge en datareader, og så skrive teksten og tilføje knappen programatisk, men jeg ved ikke helt hvordan jeg tilføjer en knap i runtime og så også kan registrerer når der bliver trykket på den..
Nogen ideer?
Avatar billede neoman Novice
26. september 2007 - 08:34 #1
Der er mange ting du kan gøre. For det første er der intet i vejen for at have controls inde i andre controls, så f.eks. kan du sagtens have et gridview inde i et andet gridview. Det ville måske nok være lidt overkill i dit tilfælde, men så en repeater/datalist (som viser en overskrift) og inde i den et gridview.

For eksempler ? Google - "gridview in repeater" eller "gridview in datalist" eller "nested datalist"/"nested repeater"

Eftersom en webshop er mere end blot at vise en liste af varer, så ville det nok være smart lige at kigge på hvordan færdige løsninger ser ud.

Her er en del færdige løsninger som du kan dl'e og kigge på:
http://www.asp.net/downloads/starter-kits/
Jeg kender TheBeerHouse, som har en webshop implementeret. Den er skrevet i C#, og det hele er struktureret i Layers osv. Selve datastrukturen er lidt uoverskuelig i starten, men det er umagen værd at sætte sig ind i hvordan de gjorde det, og der err maneg gode fif. Det bedste ved dette site er , at det hele er beskrevet i en fremragende bog: ASP.NET 2.0 Website Programming, ISBN 0-7645-8464-2.

Der findes et andet site i starter kit listen: Paypal eCommerce Starter Kit, men jeg kender det ikke.

Et simplere site får du fra http://www.wroxunited.net/  hvor du kan downloade hele koden (øverst til højre på forsiden) - det er i VB. Det hele er beskrevet i bogen :
Beginning ASp.NET 2.0 , ISBN 0-7645-8850-8. Tag dig ikke af, at deres shop ser ud ad h... til- mekanikken er god nok:)
Avatar billede neoman Novice
26. september 2007 - 08:38 #2
Bemærk også, at selv om et gridview er en tabel-agtig ting, så kan mange ting customiseres hvad udseende angår. På denne side http://starterkits.asp.net/SmallBusiness/People.aspx er der et gridview - det er den midterste kolonne. Ligner ikke helt en tabel ? :)
Avatar billede danm Nybegynder
06. oktober 2007 - 15:20 #3
Tak for dine forslag.
Jeg har svært ved at finde så meget tekst om det godt nok, men nested datalist er vist en god løsning. Har du erfaring med nogle af disse løsninger du nævner, i eksempelvis Visual studio? Og kan du fortælle ganske kort hvordan jeg skulle sætte en af disse løsninger op rent programmeringsmæssigt (og hvilken vil du anbefale til at være den bedste?)
Læg endelig et svar sammen med din besvarelse, så jeg lige kan lukkr tråden.. (o=
Avatar billede neoman Novice
06. oktober 2007 - 19:26 #4
Der er et eksempel her for en nested repeater.
http://www.asp.net/learn/data-access/tutorial-32-vb.aspx


Jeg har prøvet mange forskellige nestede ting - uanset detaljerne, princippet er stort set altid det samme: man skal finde den eventhandler som fyres af når en række i den ydre kontrol bliver databound. I handleren skal man så enten køre den sql der henter data for den indre kontrol og binde den, eller  f.eks. køre noget select på et dataset (hvori alle data for alle de inddre kontroller ligger)  og præsentere et dataview og binde den indre kontrol op imod. Husk blot at når du så refererer til felter i din indre kontrol i code-behind, så skal du først finde dem, f.eks. vha. minYdreKontrol.FindControls("navnetPåMinÍndreKontrol)).FindControl("navnetPåFeltetIIndreKontrol)")
eller pille dem ud fra "sender" eller "e" i handleren, for at få fat i den rigtige række.

Kig i de eksempler jeg omtalte - du kan dl'e dem og køre dem i din vs, og kigge på hvordan de har gjort det. Jeg har The Beer House, wroxunited og nogle andre installeret- netop for at aflure hvordan de har gjort det. Ved ikke hvor meget erfaring du har med .net og vs. Hvis du er nybegynder så ville jeg stærkt anbefale Begining asp.net. For folk som har en ide om hvordan det hele fungerer, men savner hints hist og pist, er asp.net 2.0 website programming en meget bedre bog (men ikke velegnet for totale newbies).
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