In VB.NET esiste la funzione IIf(ByVal Expression As Boolean, ByVal TruePart As Object, ByVal FalsePart As Object) As Object che permette di ritornare un valore di tipo Object in base alla valutazione di una espressione booleana passata come parametro. La funzione si comporta in maniera simile al costrutto If...Then...Else...
Combinando l'uso della funzione IIf e con quello della funzione Ctype (utile per fare i cast tra i tipi), è possibile ottenere alcuni risultati interessanti e assai utili in taluni contesti. Uno di questi è la fase di rendering di controlli web soggetti al DataBinding quali la DataGrid.
Nel caso in cui si voglia per esempio troncare una stringa contenuta all'interno di una cella di una DataGrid per motivi di leggibilità e/o per mancanza di spazio, si può evitare di ricorrere all'event handler ItemDataBound nel code behind e gestire il troncamento direttamente all'interno della pagina, come mostrato nel codice di esempio riportato di seguito.
<asp:DataGrid ID="dgrSample" Runat="server" AutoGenerateColumns="False"> <Columns> [...] <asp:TemplateColumn> <ItemTemplate> <%# CType(Iff(Len(Container.DataItem("Field")) > 20, Left(Container.DataItem("Field"), 20) & "...", Container.DataItem("Field")), String)%> </ItemTemplate> </asp:TemplateColumn> [...] </Columns> </asp:DataGrid>
In C# l'equivalente della funzione IIf è l'operatore condizionale ?: (Expression ? TruePart : FalsePart).
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Miglioramenti nelle performance di Angular 16
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- HTML5 con CSS e JavaScript
- Ottimizzazione dei block template in Angular 17
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!