Troncamento delle stringhe di un web control ASP.NET

di Riccardo Golia, in UserScript, ASP.NET, VB.NET,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

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