ASP.NET - Alterando a cor de linhas do DataGrid condicionalmente
Você pode facilmente alterar a cor das linhas de um controle DataGrid sob uma condicão. Dependendo da situação isto pode dar uma aparência mais profissional a sua aplicação.
Vamos ver como fazer para chegar a este resultado neste artigo.
Eu vou suar o Web Matrix como editor de código e para testes vou usar o servidor do Web Matrix , assim , você pode acompanhar este artigo tendo apenas o .NET Framework e o Web Matrix instalados.
O banco de dados Northwind.mdb possui a tabela Customers que apresenta a seguinte estrutura:
Vamos criar uma página ASP.NET no Web Matrix para exibir os dados desta tabela acrescentando o recurso de alterar a cor das linhas do datagrid para amarelo quando o pais for igual a Brazil. A condição a ser preenchida será : Country = 'Brazil'
Abre o Web Matrix e de um nome sugestivo a página ASP.NET ; no meu caso darei o nome de gridCorLinha.aspx.
Arraste um componente DataGrid para a área de desenho do Web Matrix na guia Design. Veja a figura abaixo:
Agora vamos incluir o código VB.NET que irá acessar o banco de dados e abrir a tabela usando um DataSet e um DataAdapter
<%@
Page Language="vb" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.OleDb" %> <%@ import Namespace="System.Drawing" %> <script runat="server"> Dim strConn as string Sub Page_Load(Source as Object, E as EventArgs) if not Page.IsPostBack then strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\teste\northwind.mdb" Dim strSQL as string = "Select * from Customers" Dim conexao as New OleDbConnection(strConn) Dim ds as DataSet=New DataSet() Dim Cmd as New OleDbDataAdapter(strSQL,conexao) Cmd.Fill(ds,"Customers") dgClientes.Datasource=ds.Tables("Customers").DefaultView dgClientes.DataBind() end if End Sub Sub verificaDados(sender As Object, e As DataGridItemEventArgs) Dim pais as String if e.Item.ItemType.ToString="Item" or e.Item.ItemType.ToString="AlternatingItem" pais=e.Item.Cells(8).text if pais = "Brazil" then e.Item.Backcolor = Color.FromName("yellow") End If End If End Sub </script> |
No evento Load da página estamos efetuando a conexão com banco de dados northwind.mdb e preenchendo o dataset com todos os dados da tabela Customers.
A rotina verificaDados() é a responsável por testar a condição estabelecida , country = 'Brazil' , e fazer a alteração da linha quando a mesma for atendida.
Note que foi criada uma variável do tipo string chamada pais para armazenar o valor que será obtido da célula . Veja na figura abaixo
É claro que você pode usar o recurso de forma dinâmica permitindo a parametrização das condições verificadas. Basta usar o seu talento.
Veja o exemplo funcionando aqui : alterando a cor das linhas de um datagrid
Pegue o código do exemplo aqui : gridCorLinha.aspx
Eu sei é apenas ASP.NET , mas eu gosto...
José Carlos Macoratti