#448 - Passare il contenuto di un DataItem ad una funzione durante il databinding

Il databinding ed i controls che lo supportano, come DataGrid, DataList e Repeater, sono davvero utili, perchè permettono di associare i dati estratti da una fonte qualsiasi in maniera ciclica, con una pulizia del codice elevata ed una separazione reale tra codice e sua rappresentazione.
Quello che molti non sanno è che si può passare il valore di una delle colonne del container ad una funzione esterna, per formattazioni o calcoli.
In questo esempio la funzione è molto banale: restituisce un'immagine con una GIF particolare se il valore del campo è true, un'altra se il valore del campo è false.
Ovviamente, ci sono utilizzi più avanzati (e forse utili) di quello presentato, ma il concetto non si distacca di una virgola.

<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SQLClient"%>
<SCRIPT LANGUAGE="VB" RUNAT="SERVER">

Sub Page_Load(sender As Object, e As EventArgs)
  ' caricamento dei dati dal database
End Sub

Function Immagine(valore as Boolean) as String
  If valore = true then
    Return "<img src=""approvato.gif"">"
  Else
    Return "<img src=""bloccato.gif"">"
  End If
End Function
</SCRIPT>

<asp:repeater id="queryres" runat="server">
<itemTemplate>
  <%#Container.DataItem("Nome")%>
  <%#Immagine(Container.DataItem("Approvato"))%>
</itemTemplate>
</asp:repeater>

Per approfondimenti sul databinding:

#302 - Data binding con ADO.NET
http://www.aspitalia.com/liste/usag/script.aspx?ID=302

  #382 - Il controllo DataList
http://www.aspitalia.com/liste/usag/script.aspx?ID=382

#445 - La paginazione manuale con il DataSet di ADO.NET ed un Repeater
http://www.aspitalia.com/liste/usag/script.aspx?ID=445

La categoria System.Data:
http://www.aspitalia.com/ricerca/super.aspx?usag=1&azione=categoria&key=System.Data


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC