Coluna Booleana no DataGrid
Quando exibimos um conteúdo de uma tabela em um DataGrid e algum dos campos da mesma é uma coluna do tipo Booleana, muitas vezes precisamos dar ao usuário uma mensagem mais amigável do que um simples "True" ou "False".
Neste caso, utilizamos o evento ItemDataBound do DataGrid e assim conseguimos interceptar o Bind no DataGrid, e com isso, verificamos o valor do campo booleano, personalizando assim, a mensagem ao usuário.
O que devemos fazer é depois de arrastar o DataGrid para o nosso WebForm, temos que ir até o Property Builder e consequentemente adicionar coluna booleana para ser exibida, que no caso deste exemplo chama-se "Status". Vejamos abaixo o código necessário para isso:
Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As _
System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
If e.Item.ItemType = ListItemType.AlternatingItem OrElse _
e.Item.ItemType = ListItemType.Item Then
If Convert.ToBoolean(DirectCast(e.Item.DataItem, DataRowView).Item("Status")) Then
e.Item.Cells(1).Text = "Cliente ativo."
Else
e.Item.Cells(1).Text = "Cliente desabilitado."
End if
End if
End Sub
Vale chamar a atenção para a condicional que fazemos, ou seja, convertermos o DataItem (que no caso do Exemplo, a fonte de dados é um Dataset, logo, o DataItem será um DataRowView para booleano, e assim, se for verdadeiro exibimos uma mensagem, dizendo que o cliente está ativo, caso contrário, informamos que o cliente está desabilitado. Observem que "escrevemos" isso na célula 1, que corresponde à célula onde seria exibido o campo "Status", mas claro, em seu valor original ("True/False").