Toon posts:

[ASP.NET] If then -- Expression expected!

Pagina: 1
Acties:

Verwijderd

Topicstarter
hey,

Ik krijd de volgende foutmelding:
code:
1
2
3
4
5
6
7
8
9
10
Compiler Error Message: BC30201: Expression expected.

Source Error:


Line 35:            <itemtemplate>
Line 36:                <%
Line 37:                    If Left(#Container.DataItem("title"),1 == "E" Then
Line 38:                %>
Line 39:                <tr>



bij de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<itemtemplate>
                <%
                    If Left(#Container.DataItem("title"),1 == "E" Then
                %>
                <tr>
                <td><%#Container.DataItem("title")%></td>
                <td><%#Container.DataItem("artist")%></td>
                <td><%#Container.DataItem("country")%></td>
                <td><%#Container.DataItem("company")%></td>
                <td><%#Container.DataItem("price")%></td>
                <td><%#Container.DataItem("year")%></td>
                </tr>
                <%
                    End If
                %>
            </itemtemplate>


Het werkt wel zonder "If Then" gedoe! Mijn idee was om zo alleen de albums waar de titels met een E beginnen weer te geven. Denk ik fout? vast wel.. maar wat?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19:24

gorgi_19

Kruimeltjes zijn weer op :9

Je moet je datasource op orde brengen, op deze manier gaat het niet werken.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Wacht ff, het heeft dus met mijn datasource te maken.... maar dat werkt wel, als ik er geen If then in stop, dus als ik gew2oonweg alles laat weergeven. Hier is alle code. Zeg even hoe ik het zou moeten doen als het niet te veel gevraagd is.
Alvast bedankt!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<%@ Page Language="VB" Debug="true"%>
<%@ Import Namespace="System.Data" %>
<script runat="server">
    sub Page_Load
        if Not Page.IsPostBack then
            dim mycdcatalog=New Dataset
            mycdcatalog.Readxml(MapPath("cd_catalog.xml"))
            cdcatalog.DataSource=mycdcatalog
            cdcatalog.DataBind()
        end if
    end sub
</script>

<html>
<head>
<title>cd catalogus</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
    <form runat="server">
        <asp:Repeater id="cdcatalog" runat="Server">
            <headerTemplate>
                <table border="0" width="60%">
                <tr>
                <th>Title</th>
                <th>Artist</th>
                <th>Country</th>
                <th>Company</th>
                <th>Price</th>
                <th>Year</th>
                </tr>
            </headerTemplate>
            
            <itemtemplate>
                <%
                    If Left(#Container.DataItem("title"),1 == "E" Then
                %>
                <tr>
                <td><%#Container.DataItem("title")%></td>
                <td><%#Container.DataItem("artist")%></td>
                <td><%#Container.DataItem("country")%></td>
                <td><%#Container.DataItem("company")%></td>
                <td><%#Container.DataItem("price")%></td>
                <td><%#Container.DataItem("year")%></td>
                </tr>
                <%
                    End If
                %>
            </itemtemplate>
                        
            <SeparatorTemplate>
                <tr>
                <td colspan="6" bgcolor="#e8e8e8"><hr /></td>
                </tr>
            </SeparatorTemplate>
            
            <footertemplate>
                </table>
            </footertemplate>
        </asp:Repeater>
    </form>
</body>
</html>


XML file is uiteraard ook goed. Als er behoefte aan is wil ik die ook wel postem!

[ Voor 26% gewijzigd door Verwijderd op 22-09-2004 14:58 ]


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Er mist een haaktje na Left(#Container.DataItem("title"),1

Volgens mij moet dat Left(#Container.DataItem("title"),1) zijn

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Je hebt gelijk, maar dezelfde foutmelding blijft.
Toch bedankt.

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 21-05 21:51

pistole

Frutter

P_de_B schreef op 22 september 2004 @ 14:57:
Er mist een haaktje na Left(#Container.DataItem("title"),1

Volgens mij moet dat Left(#Container.DataItem("title"),1) zijn
dat ^ , en een vergelijking in VB doe je met '=' ipv '=='

Ik frut, dus ik epibreer


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19:24

gorgi_19

Kruimeltjes zijn weer op :9

Een dataset heeft toch iets als filters; anders gooi je een dataview over je dataset heen. Daarmee filter je alle overbodige records er uit. De goede resultset ga je vervolgens binden; zo blijft ook je template netjes.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Jullie hebben allebei helemaal gelijk!! (y) en toch.... en toch.....
de foutmelding blijft overanderd hetzelfde

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

code:
1
<td><%#Container.DataItem("title")%></td>

Moet daar geen echo oid voor de code?

[ Voor 25% gewijzigd door justmental op 22-09-2004 15:09 ]

Who is John Galt?


Verwijderd

Topicstarter
nope, het werkt gewoon als ik de volgende tags
code:
1
2
3
<%
                    If Left(#Container.DataItem("title"),1) = "E" Then
                %>

code:
1
2
3
<%
                    End If
                %>

weghaal, dus daar ligt het niet aan.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19:24

gorgi_19

Kruimeltjes zijn weer op :9

Klopt, je mag ook niet op die manier nesten...

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Output je table-tags vanuit ASP met een echo-command (echo is een PHP command, het ASP-equivalent weet je vast zelf wel, heb zelf nooit met ASP gewerkt). Dus niet tussentijds naar HTML switchen, volgens mij is dat in dit geval namelijk niet toegestaan.

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:52
Je hebt een if statement zonder then-tak.

https://fgheysels.github.io/


Verwijderd

Klopt, je mag ook niet op die manier nesten...
Dat mag wel hoor. Het is weliswaar niet zo netjes, maar het werkt wel.

Haal alleen dat hekje weg. Die is hier nu niet op zijn plaats.

Let op: dat hekje staat achter het procent teken, niet voor Container. Dat betekent dat de code die erin staat een waarde retourneert die op het DataBind moment aangeroepen wordt.


Edit: oeps. Die if-constructie werkt wel, maar in zo'n stuk code kun je natuurlijk niet meer over je Container.DataItem beschikken, omdat het nu niet meer gerenderd wordt op het DataBind moment.

[ Voor 53% gewijzigd door Verwijderd op 22-09-2004 18:58 ]


Verwijderd

If Left(#Container.DataItem("title"),1 == "E" Then

moet de dubbele = geen enkele = worden?

Verwijderd

Topicstarter
Verwijderd schreef op 22 september 2004 @ 16:04:
Output je table-tags vanuit ASP met een echo-command (echo is een PHP command, het ASP-equivalent weet je vast zelf wel, heb zelf nooit met ASP gewerkt). Dus niet tussentijds naar HTML switchen, volgens mij is dat in dit geval namelijk niet toegestaan.
Het is geen ASP maar ASP.NET, er hoeft geen echo voor.
Verwijderd schreef op 22 september 2004 @ 23:46:
If Left(#Container.DataItem("title"),1 == "E" Then

moet de dubbele = geen enkele = worden?
Klopt, was al gemeld! ;)
Verwijderd schreef op 22 september 2004 @ 18:04:
[...]


Dat mag wel hoor. Het is weliswaar niet zo netjes, maar het werkt wel.

Haal alleen dat hekje weg. Die is hier nu niet op zijn plaats.

Let op: dat hekje staat achter het procent teken, niet voor Container. Dat betekent dat de code die erin staat een waarde retourneert die op het DataBind moment aangeroepen wordt.


Edit: oeps. Die if-constructie werkt wel, maar in zo'n stuk code kun je natuurlijk niet meer over je Container.DataItem beschikken, omdat het nu niet meer gerenderd wordt op het DataBind moment.
Daar heb ik wat aan :*) Dat hielp me op weg.
gorgi_19 schreef op 22 september 2004 @ 15:14:
Klopt, je mag ook niet op die manier nesten...
Jouw berichtjes waren het "vaagst" voor mij, maar uiteindelijk na lang zoeken zat jij toch helemaal goed, met je dataview (y)

Allemaal heel erg bedankt. Als jullie willen weten hoe ik het heb opgelost post ik de code wel.
Pagina: 1