Hej! Det där borde väl funka tror jag! Tack för ett snabbt svar! =) Det är för att du har fortsättningen på samma rad. Då räknas det som en one-line-if och du kan inte ha else eller end if på den Mikael har ratt...till skillnad fran manga andra programmeringssprak som inte bryr sig om mellanrum eller radbrytningar sa ar detta viktigt for VB / ASP. Gor sa har istallet: Hej igen,Problem med ElseIf i ASP.NET?
Är helt ny när det gäller ASP.NET och har nu stött på ett problem som jag inte förstår...
Hur kommer det sig att det inte går att använda ElseIf efter en If-sats?
Är det bara ett väldigt konstigt fel i programmet (VS.NET) ;), eller är det jag som har missat något viktigt? (tror på det senaste)
Private Sub ImageButton1_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click
If (PlaceHolder1.Visible = False) Then PlaceHolder1.Visible = True
ElseIf (PlaceHolder1.Visible = True) Then PlaceHolder1.Visible = false
End If
End Sub
(hamnade fel)
Sv: Problem med ElseIf i ASP.NET?
Du kanske inte ser var du är i debuggern när det är på samma rad?
Får du kompileringsfel eller vad händer?
Tips: dina If, ElseIf-rader kan ersättas med detta:
PlaceHolder1.Visible = Not PlaceHolder1.Visible Sv:Problem med ElseIf i ASP.NET?
Ja visst verkar det konstigt?
Ja jag får kompileringsfel:
'End If' must be preceded by a matching 'If'.
'Else' must be preceded by a matching 'If' or 'ElseIf'.
Jag ska försöka med ditt andra förslag. :)Sv: Problem med ElseIf i ASP.NET?
testa att dunka in en enter efter then, så skall det nog funka.
/mickeSv:Problem med ElseIf i ASP.NET?
<code>
Private Sub ImageButton1_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click
If (PlaceHolder1.Visible = False) Then
PlaceHolder1.Visible = True
ElseIf (PlaceHolder1.Visible = True) Then
PlaceHolder1.Visible = False
End If
End Sub
</code>
// JohanSv: Problem med ElseIf i ASP.NET?
Jag noterade precis ett par små detaljer till:
* du behöver faktiskt inga parenteser
* du behöver heller inte elseif, eftersom antingen är ditt uttryck sant eller inte så en vanlig else räcker
Så här blir det då iställer:
<code>
Private Sub ImageButton1_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click
If PlaceHolder1.Visible = False Then
PlaceHolder1.Visible = True
Else
PlaceHolder1.Visible = False
End If
End Sub
</code>
Vill man göra det ännu enklare kan man dessutom utnyttja att sant är motsatsen till falskt:
<code>
Private Sub ImageButton1_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click
PlaceHolder1.Visible = Not PlaceHolder1.Visible
End Sub
</code>
// Johan