Avatar billede c-sharp Nybegynder
14. januar 2004 - 08:22 Der er 10 kommentarer og
1 løsning

Problemer med if-sætnig i repeater

Jeg har skrevet følgende kode:
                           
<% if(DataBinder.Eval(Container.DataItem, "aktiv")){ %>
    <img src="images/ikke-aktiv.gif">
<%}%>

aktiv er en bit i databasen.
   
og får følgende fejl:

CS0246: The type or namespace name 'Container' could not be found (are you missing a using directive or an assembly reference?)

Hvis jeg skriver følgende, skriver denværdien af "aktiv" :

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

Hvad er der galt med min if-sætning?
Avatar billede medions Nybegynder
14. januar 2004 - 08:24 #1
<% if(DataBinder.Equals(Container.DataItem, "aktiv")){ %>
    <img src="images/ikke-aktiv.gif">
<%}%>

Er det ik' sådan?

//>Rune
Avatar billede c-sharp Nybegynder
14. januar 2004 - 08:29 #2
Følgende skriver jeg for at få retuneret værdien fra dataset:
DataBinder.Eval(Container.DataItem, "aktiv") dette skulle gerne retunere true eller false fra dateset.
Avatar billede 2c Nybegynder
14. januar 2004 - 09:05 #3
Har du husket at inkluderer de rigtige biblioteker ? Jeg tror det er det den fejlmeddelse plejer at betyde.
Avatar billede c-sharp Nybegynder
14. januar 2004 - 09:29 #4
Det virker fint nok hvis jeg undlader if-sætningen:

<%# (DataBinder.Eval(Container.DataItem, "aktiv"))%>
Avatar billede runesoft Nybegynder
14. januar 2004 - 11:29 #5
Jeg tror det er fordi den ikke returnerer en boolean. hvis du sammenligner resultatet tror jeg det vil virke.
Avatar billede c-sharp Nybegynder
14. januar 2004 - 11:47 #6
Heller ikke det:

<% if(DataBinder.Equals(Container.DataItem, "aktiv")==1){ %>

eller

<% if(DataBinder.Equals(Container.DataItem, "aktiv")==""){ %>

Får samme fejl på dem begge:

Compiler Error Message: CS0246: The type or namespace name 'Container' could not be found (are you missing a using directive or an assembly reference?)
Avatar billede runesoft Nybegynder
14. januar 2004 - 11:52 #7
brugte du ikke eval?
Avatar billede c-sharp Nybegynder
14. januar 2004 - 11:58 #8
Nej
Avatar billede jakobg Nybegynder
14. januar 2004 - 17:07 #9
Så vidt jeg har erfaret, kan det ikke lade sig gøre at ligge if-statements ud på aspx-siden.
Istedet bør du lave en protected function i din code-behind, som tager et enkelt argument som parametre, og derefter returnerer dét du skal bruge.

Altså noget i stil med

Protected Function GetImage(ByVal blnValue As Boolean) As String
If blnValue Then
  Return "<img ....>"
Else
  Return ""
End If
End Function

På din aspx-side gør du så følgende:

<%# GetImage(Container.DataItem("aktiv")) %>

Det burde virke... :)
Avatar billede roger Nybegynder
15. januar 2004 - 05:24 #10
Til en anden god gang kan du også bruge repeateren ItemDataBound event
Avatar billede c-sharp Nybegynder
15. januar 2004 - 06:19 #11
Hvordan fungere den?
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