999ANDRE999 Posted July 14, 2016 at 04:05 PM Report #597666 Posted July 14, 2016 at 04:05 PM Boa tarde, Estou a utilizar uma grid composta por 12 colunas: O que pretendo é mudar a cor da(s) celula(s) consuante a data... Ou seja, se a data da grid (que é apresentada através de uma chamada à BD) = data do dia a cor fica vermelha, se não a cor de fundo fica a verde. Alguém me pode ajudar? 😕
999ANDRE999 Posted July 19, 2016 at 10:31 AM Author Report #597712 Posted July 19, 2016 at 10:31 AM (edited) Vivam, Já consegui fazer umas evoluções. protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e) { // quando montar as linhas do tipo DADOS if (e.Row.RowType == DataControlRowType.DataRow) { string project = DataBinder.Eval(e.Row.DataItem, "project").ToString(); // cores para aprovação if (project == "2") e.Row.Cells[1].BackColor = Color.OrangeRed; if (project == "1") e.Row.Cells[2].BackColor = Color.OrangeRed; } } O problema é que atualmente ele analiza a coluna 1 e se algumas das celulas contiver o valor "2" pinta de vermelho, e analisa a coluna 2 e se contiver em alguma celula o valor "1" pinta de vermelho também. O que eu pretendia era nas colunas não analisar um valor em concreto, mas sim uma data, ou seja, se o valor de uma célula ainda não tiver chegado à data do dia (p.e. hoje dia 19-07-2016) fica verde, se a celula contiver a data do dia ou passar, ficar a vermelho. Pensei em usar uma variável DateTime agora = DateTime.Now; mas não sei como manipula-la dentro do if. Alguma sugestão? Edited July 19, 2016 at 10:33 AM by 999ANDRE999
999ANDRE999 Posted July 19, 2016 at 04:05 PM Author Report #597717 Posted July 19, 2016 at 04:05 PM Reparei agora que quando tenho mais que uma célula na mesma coluna com o mesmo valor, o código só coloca o fundo de acordo com a condição imposta, numa das células dessa coluna e não em todas com o mesmo valor. faltará alguma coisa neste if? // cores para aprovação if (project == "2") e.Row.Cells[1].BackColor = Color.OrangeRed; if (project == "1") e.Row.Cells[2].BackColor = Color.OrangeRed;
Solution 999ANDRE999 Posted July 20, 2016 at 08:02 AM Author Solution Report #597729 Posted July 20, 2016 at 08:02 AM Pessoal já resolvi o problema de quando tenho mais que uma célula na mesma coluna com o mesmo valor, o código só coloca o fundo de acordo com a condição imposta, numa das células dessa coluna e não em todas com o mesmo valor. Agora isto está tudo a funcionar com valores int. Necessito de fazer o mesmo para data. Pensei em usar uma variável: DateTime agora = DateTime.Now; mas não sei como manipula-la dentro do if com operadores > = < <= ou >= visto ser string.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now