Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tom55

[Resolvido] colorir data grid

Recommended Posts

e ai galera...

 

seguinte, eu tenho um grid populado com diversas informações que posteriormente serão editadas nesse mesmo grid.

 

eu gostaria de saber uma maneira de deixar as linhas do grid que não foram editadas, com uma cor diferente, para melhorar a visualização do usuário

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para colorir utilize o evento RowDataBound.

Ex.:

If e.Row.RowType = DataControlRowType.DataRow Then
			If e.Row.Cells(0).Text = "Em Edição" Then
				e.Row.BackColor = Drawing.Color.FromArgb(0, 158, 158, 158)
			Else e.Row.Cells(0).Text = "Em Aberto" Then
				e.Row.BackColor = Drawing.Color.FromArgb(0, 255, 128, 64)
			End If
		End If

Neste exemplo utilizei o FromArgb, mas você pode colorir com o método que achar mais apropriado, mas o principal é a propriedade BackColor da linha.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei passar esse codigo pro c#.....

 

mexi, fucei e não consegui nada.... o máximo que eu cheguei foi ele rapidamente trocar de cor sempre, sem contar se estava ou não uma posição x vazia....

 

tentei passar esse codigo pro c#.....

 

mexi, fucei e não consegui nada.... o máximo que eu cheguei foi ele rapidamente trocar de cor sempre, sem contar se estava ou não uma posição x vazia....

 

tentei passar esse codigo pro c#.....

 

mexi, fucei e não consegui nada.... o máximo que eu cheguei foi ele rapidamente trocar de cor sempre, sem contar se estava ou não uma posição x vazia....

Compartilhar este post


Link para o post
Compartilhar em outros sites

C#:

if (e.Row.RowType == DataControlRowType.DataRow)
		{
			if (e.Row.Cells[0].Text == "1")
			{
				e.Row.BackColor = System.Drawing.Color.FromArgb(0, 158, 158, 158);
			}
			else if (e.Row.Cells[0].Text == "2")
			{
				e.Row.BackColor = System.Drawing.Color.FromArgb(0, 255, 128, 64);
			}
		}

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

em qual framework que tu programa?

 

 

aqui ele não acha o e.row... e nem o datacontrolrowtype

 

 

vou dar mais uma pesquisada, qualquer coisa posto aqui!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este código foi utilizado com o GridView, de uma olhada nesses artigos que trabalham com o DataGrid, acho que irá ajudar:

http://forums.microsoft.com/MSDN-BR/ShowPo...0&SiteID=21

http://imasters.com.br/artigo/3608/asp...com_a_datagrid/

http://www.macoratti.net/aspn_clg.htm

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bah... não consigo de jeito nenhum......

 

 

na verdade eu preciso deixar marcada a linha do datagrid que já foi editada, ou seja, que todos os campos já estão preenchidos.

 

será que existe outra maneira do que sinalizar com cor? talvez usando uma imagem no datagrid, mas não sei como fazer ela "sumir" e "aparecer" quando está OK

Compartilhar este post


Link para o post
Compartilhar em outros sites

tava dando um erro... simplismente não pintava a linha... mas eu desconfio do que seja...

 

mais tarde vou abrir o projeto e qualquer coisa posto aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui chegar até o data row...

 

 

mas agora não acho a propriedade backcolor.... não sei se está correto. Ele dá um erro de compilação pois não acha a propriedade BackColor no System.Data.DataRow

 

foreach (DataRow r in ds1.Tables[0].Rows)
		{
			if (Convert.ToString(r["DT_DEVOLUCAO"]) == "")
			{
				r.BackColor = Color.Orange;
			}

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa....

 

bom eu mudei de um datagrid por um grid view...

 

com o código abaixo ele está colorindo uma linha sim e outra não, e não colorindo apenas as que tem o campo vazio.....

 

foreach (DataRow r in ds2.Tables[0].Rows)
		{
			if (Convert.ToString(r["DT_DEVOLUCAO"]) == "")
			{
				teste.RowStyle.BackColor = Color.Orange;
				
			}
		}

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom... tentei e não consegui colorir a maldita linha.... devo estar fazendo alguma coisa de errado...

 

mas achei outra solução para o meu problema.

 

 

coloquei mais uma linha no meu datagrid(voltei a usar ele) com uma imagem. Aí eu faço a validação do campo dentro do próprio SQL, se o campo estiver cheio ele coloca o V informando que já está OK.!

 

pode fechar o tópico e valeu pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.