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
https://www.aspitalia.com/liste/usag/script.aspx?ID=302
#382 - Il controllo DataList
https://www.aspitalia.com/liste/usag/script.aspx?ID=382
#445 - La paginazione manuale con il DataSet di ADO.NET ed un Repeater
https://www.aspitalia.com/liste/usag/script.aspx?ID=445
La categoria System.Data:
https://www.aspitalia.com/ricerca/super.aspx?usag=1&azione=categoria&key=System.Data
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Short-circuiting della Pipeline in ASP.NET Core
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Load test di ASP.NET Core con k6
Effettuare il binding di date in Blazor
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Implementare il throttling in ASP.NET Core
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
I più letti di oggi
- Utilizzare WebAssembly con .NET, ovunque
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Utilizzare il trigger SQL con le Azure Function
- Ottimizzazione dei block template in Angular 17
- Disabilitare automaticamente un workflow di GitHub (parte 2)