asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 8811
ASPCode.it - Store

  > > Articoli

Una IF un po' speciale

Data di pubblicazione: 26/02/2002        Voto della community: 4,33 (Votanti: 3)


La funzione che segue sarà sicuramente ben nota a chiunque mastichi un po’ di Visual Basic. Purtroppo la Microsoft tempo fa decise di non includerla - per qualche oscura ragione - nel suo fratellino minore (il VBScript). Fortunatamente la sua implementazione è piuttosto semplice.

La funzione IIF()

Partiamo con l’analisi di un caso "reale" (che appare di tanto in tanto sul forum di ASPCode.it): dobbiamo mostrare il risultato di una query SQL in una tabella HTML (<TABLE></TABLE>) e vogliamo farlo alternando i colori di sfondo (bgcolor) delle righe (<TR></TR> o Table Row). Una classica implementazione di quanto detto è la seguente (in questo esempio alterniamo righe con sfondo giallo ad altre con sfondo acqua):

<TABLE>
<%
For index = 1 to 10
  If (index MOD 2) = 0 Then 'valuta se la riga è pari
%>
    <TR bgcolor="yellow"><TD>riga <%=index%></TD></TR>
<%
  Else 'no, è dispari
%>
    <TR bgcolor="aqua"><TD>riga <%=index%></TD></TR>
<%
  End If
Next
%>
</TABLE>

Guardate cosa succede usando la nostra iif():

<TABLE>
<%
For index = 1 to 10
%>

  <TR bgcolor="<%= iif((index MOD 2)=0, "yellow", "aqua")%>">
  <TD>riga <%=index%></TD></TR>
<%
Next
%>
</TABLE>

Comodo, no? Ed anche più leggibile (almeno a mio parere) :-)

Altro esempio:

<%
If strLingua = "eng" Then    'siamo nella sezione "inglese" del nostro sito...
  Response.Write("Welcome back!")
Else                                        'siamo in quella italiana
  Response.Write("Bentornato!")
End If
%>

Con la iif():

<%= iif((strLingua = "eng"), "Welcome back!", "Bentornato!")%>

Ed ecco il corpo della funzione:

<%
function iif(condizione, stringa1, stringa2)
  ' ARGOMENTI:
  '<condizione> è la condizione da valutare.
  '<stringa1>    è la stringa che verrà restituita se <condizione> è Vera.
  '<stringa2>    è la stringa che verrà restituita se <condizione> è Falsa.

  ' Una sola riga di codice!
  If condizione then iif = stringa1 else iif = stringa2
end function
%>

Il mio consiglio è di metterla in un file .ASP da includere quando se ne ha bisogno, ad esempio:

<!--include file="iif.asp"-->
<%
  Response.Write iif(etc. etc.)
%>

Alla prossima!




Utenti connessi: 8811