amartinsen Skrevet 20. november 2009 Del Skrevet 20. november 2009 (endret) Hei Jeg holder på med en nettside som skal vise priser fra en sql database. Resultatet av spørringen vises i form av listview, men normalpris skal ikke vises hvis kampanjepris er større enn 0, noen som kan hjelpe? Bruker visual studio 2008 og siden lages i C#, er helst vant med PHP så jeg står litt fast. <asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1"> <ItemTemplate> <span class="s_pris">Pris: <asp:Label ID="normalpLabel" runat="server" Text='<%# Eval("normalp") %>' /></span><br /> <span class="t_pris">Tilbudspris: <asp:Label ID="saleprLabel" runat="server" Text='<%# Eval("salep") %>' /></span><br /> </ItemTemplate> </asp:ListView> Endret 20. november 2009 av amartinsen Lenke til kommentar
HDSoftware Skrevet 23. november 2009 Del Skrevet 23. november 2009 (endret) Heisan Jeg er ingen ASP ekspert, men jeg prøver meg alikevel. Jeg er litt usikker på hvordan du har enkt her. Ser ut til at du overlater testingen av verdiene til HTML koden. Hvorfor ikke la CodeBehind fikse dette? Lag en metode i code behind klassen: public int Prisen() { if (t_pris > 0) return t_pris; return s_pris; } Så kan du vel putte Prisen() inn i EVAL uttrykket ditt i stedet. Gjetter litt her altså... edit: Kan tenkes EVAL krever å få en string og da må funksjonen endres litt: public string Prisen() { if(t_pris > 0) return t_pris.ToString(); return s_pris.ToString(); } Endret 23. november 2009 av HDSoftware Lenke til kommentar
GeirGrusom Skrevet 23. november 2009 Del Skrevet 23. november 2009 Kan ikke dette gjøres i SQL-uttrykket ditt da? Lenke til kommentar
HDSoftware Skrevet 24. november 2009 Del Skrevet 24. november 2009 (endret) Det var til og med enda bedre ;-) Men ideen her er vel kansje å få over begge verdiene uansett med tanke på beregniger og slikt - kansje.... ikke vet jeg. Endret 24. november 2009 av HDSoftware Lenke til kommentar
Wattengård Skrevet 24. november 2009 Del Skrevet 24. november 2009 Selv har jeg gjort det slik at all kode som trenger knaing knas i codebehind for deretter å populere container med ListView1.DataSource = KnaddDataTabell; ListView1.DataBind(); f.eks. -C- Lenke til kommentar
HDSoftware Skrevet 24. november 2009 Del Skrevet 24. november 2009 Funker også fint, men da bruker du ikke lenger LINQ objektet eller Datasourcen som er definert i designeren, men ja - helt enig Lenke til kommentar
amartinsen Skrevet 24. november 2009 Forfatter Del Skrevet 24. november 2009 (endret) Takk for svar. Jeg skal teste litt med codebehindtipsene, må bare lese meg litt frem til det. Angående SQL strengen så tenkte jeg på dette også, men ble ikke helt klok på meg selv, prøvde litt forskjellig, men ble ikke så greit :-P SelectCommand="SELECT [ean], [info], [normalp], [salep] FROM [liste] WHERE ([ean] = @ean)"> Altså, jeg har et skjema på siden der ean kode angis og så ved å trykke på Søk så returneres prisinformasjon om varen samt informasjon om varen (info), hvis salep er større enn 0 så skal normalp vises, motsatt hvis salep er større enn 0. Det fungerte veldig greit i PHP, men i ASP må man altså bruke codebehind har jeg nå skjønt. Endret 24. november 2009 av amartinsen Lenke til kommentar
HDSoftware Skrevet 24. november 2009 Del Skrevet 24. november 2009 Du missforstår CodeBehind i ASP.NET betyr bare den kompillerte C# koden som kjører bak scriptet. Det er akkurat det samme som skjer i PHP og ellers absolutt alle andre Server Side Scripts. Vi bare kaller det CodeBehind i .NET Du kan godt ha C# koden din direkte i ASPX dokumentet slik du gjør det i PHP. Det er helt opp til deg, men av vedlikeholdsmessige hensyn så er det mere oversiktelig å putte koden ut i et eget dokument og heller referere til dette dokumentet i ASPX dokumentet Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå