Avatar billede agertoft Nybegynder
19. oktober 2004 - 11:02 Der er 13 kommentarer og
1 løsning

Checke værdi på resultat af DataBinder.Eval

Jeg har en DataList, hvori der bliver udskrevet nogle værdier fra en database med metoden:

<%# DataBinder.Eval(Container.DataItem, "open")%>

Dette er det eneste, der ligger af ASP-kode i min aspx-fil. Resten ligger i min codebehind. Nu er spørgsmålet, hvordan jeg checker på denne værdi. Hvis resultatet af ovenstående linje fx er 1, skal der udskrives "Åben" på min side. Hvordan gør jeg det?
Avatar billede snepnet Nybegynder
19. oktober 2004 - 11:28 #1
hej igen agertoft :o)

du kan bruge iif(...)

Jeg er på arbejde så jeg har ikke så meget tid, men du kan se et lille eksempel her :

<asp:Image
  id="Image1"
  runat="server"
  ImageUrl='<%# iif(DataBinder.Eval(Container.DataItem, "StringValue")="","&nbsp;",DataBinder.Eval(Container.DataItem,"StringValue"))
%>'>

Håber det lige kan bringe dig lidt videre :o)

mvh
Avatar billede agertoft Nybegynder
19. oktober 2004 - 12:11 #2
Jeg har nu prøvet at bruge:

<%# iif(DataBinder.Eval(Container.DataItem, "open")="1","Åben",DataBinder.Eval(Container.DataItem,"open")) %>

men jeg får fejlen:

Compiler Error Message: CS0131: The left-hand side of an assignment must be a variable, property or indexer

...og jeg kan ikke helt gennemskue, hvad der er galt, da jeg ikke rigtig har kendt til 'iif' og den metode.
Avatar billede snepnet Nybegynder
19. oktober 2004 - 12:35 #3
du kan lige få en C# syntaks istedet (hvad koder egentlig i)...
Jeg gør normalt ikke den slags i aspx-en selv, men denne her skulle virke fint nok :

// f.eks. på et tekstproperty
Text='<%# DataBinder.Eval(Container.DataItem, "FldString") == "something" ? "BLAH" : DataBinder.Eval(Container.DataItem, "FldString") %>'

Håber du har bedre held med den :o)

mvh
Avatar billede agertoft Nybegynder
19. oktober 2004 - 12:38 #4
Jeg koder i C# :)
Avatar billede snepnet Nybegynder
19. oktober 2004 - 12:41 #5
Så skulle den sidste virke :o)
mvh
(egentlig er fejlmeldingen prefixet med CS nok også en god indikatione hehe).
Avatar billede agertoft Nybegynder
19. oktober 2004 - 12:53 #6
Ja, men den brokkede sig faktisk ikke over det. Det er svært at bruge en metode, man aldrig har set før i C# når man får den i et andet sprog hehe...

Okay, det kan godt være jeg er langsom, men jeg prøver lige at beskrive, hvad det er jeg prøver på, og hvordan jeg prøver at gøre det.

Jeg har en DataList hvis datasource er et dataset. I dette dataset har jeg en værdi, der har navnet "open". Hvis denne værdi er lig 0 skal der skrives "Lukket" ud på min side, og hvis den er lig 1, skal der skrives åben.

Jeg har prøvet med:

<%# DataBinder.Eval(Container.DataItem, "open") == "1" ? "Åben" : DataBinder.Eval(Container.DataItem, "open") %>

og jeg er sikkert hel gal på den, men kan ikke rigtig gennemskue, hvordan det skal gøres..
Avatar billede snepnet Nybegynder
19. oktober 2004 - 12:56 #7
Så vil jeg tro at denne her er fin :
DataBinder.Eval(Container.DataItem, "open") == "1" ? "Åben" : "Lukket"
Avatar billede agertoft Nybegynder
19. oktober 2004 - 13:07 #8
Hvis jeg bruger:

<%# DataBinder.Eval(Container.DataItem, "open") == "1" ? "Åben" : "Lukket" %>

skriver den konsekvent "Lukket" som værdien - selvom jeg ændrer værdien i min database, som mit dataset bliver udgjort af :-/
Avatar billede snepnet Nybegynder
19. oktober 2004 - 13:13 #9
Det er nok pga. den type du har i basen.... er det en booler eller ?
Avatar billede agertoft Nybegynder
19. oktober 2004 - 13:16 #10
nej, det er en integer..
Avatar billede agertoft Nybegynder
19. oktober 2004 - 13:18 #11
Hvis jeg fjerner "" omkring 1-tallet får jeg:

Compiler Error Message: CS0019: Operator '==' cannot be applied to operands of type 'object' and 'int'
Avatar billede snepnet Nybegynder
19. oktober 2004 - 13:22 #12
Ok.... så kan du lige få disse her :

Hvis du er sikker på at der er en int :
<%# (int)DataBinder.Eval(Container.DataItem, "open") == 1 ? "Åben" : "Lukket" %>

Hvis der godt kan være andet :
<%# int.Parse(DataBinder.Eval(Container.DataItem, "open").ToString()) == 1 ? "Åben" : "Lukket" %>

mvh
Avatar billede agertoft Nybegynder
19. oktober 2004 - 13:29 #13
ahh ja selvfølgelig, til sidst havde jeg lige hovedet under armen - endelig ;)

Jamen altså, jeg takker endnu engang for din hjælp. Læg et svar :D
Avatar billede snepnet Nybegynder
19. oktober 2004 - 13:33 #14
Det var så lidt :o)
mvh
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