Ascolta, il tuo esempio funziona. A me però serve valutare il valore
di ritorno nel codice html per stampare o meno una cella della tabella. Ho fatto così : (non guardare il significato)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>Prodotti</title>
<script runat="server">
Sub Page_Load
DettaglioProdotto.datasource=DateTime.Now.ToString ("dd/MM/yy").Split("/")
DettaglioProdotto.Databind
End Sub
Function Funzione (i as integer) As Integer
return i*2
End Function
</script>
</HEAD>
<BODY>

<form id="Form1" method="post" runat="server">
<asp:datalist id="DettaglioProdotto" runat="server">
<ItemTemplate>
<table>
<tr>
<td>Numero</td>
<td><%# Container.DataItem %></td>
</tr>
<tr>
<td>Numero raddoppiato</td>
<% If (Funzione(Container.DataItem))= 1 Then %>
<td>Uno</td>
<% End If %>
</tr>
</table>
</ItemTemplate>
</asp:datalist>
</form>
</BODY>
</HTML>

mi dice Container not declared