Verificar se uma coluna do GridView está Vazia
Windows Form, em um Grid verificar se a coluna "Data de Devolução" tem uma data e se tiver deixar toda linha com ForeColor Red, a grosso modo seria mais ou menos assim :
Este código dá erro de operador "!="...
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150222-193921.png[/img]
Este código dá erro de operador "!="...
private void locacaoDataGridView_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e) { for (int i = 0; i < locacaoDataGridView.Rows.Count; i++) { if (locacaoDataGridView.Rows[i].Cells[3].Value.ToString() != string.IsNullOrEmpty) { locacaoDataGridView.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150222-193921.png[/img]
Jair Souza
Curtidas 0
Respostas
Joel Rodrigues
22/02/2015
Está dando erro porque String.IsNullOrEmpty é um método. Você deve comparar com String.Empty ou simplesmente "".
GOSTEI 0
Jair Souza
22/02/2015
Ajustei, mas assim somente a coluna fica em vermelho, sabes como fazer para que as linhas que tenham data de devolução, fiquem em vermelho ?
As tentativas que soube fazer, fica tudo vermelho ou somente a coluna...
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150223-164740.png[/img]
As tentativas que soube fazer, fica tudo vermelho ou somente a coluna...
private void locacaoDataGridView_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e) { for (int i = 0; i < locacaoDataGridView.Rows.Count; i++) { if (locacaoDataGridView.Rows[i].Cells[3].Value.ToString() != string.Empty) { locacaoDataGridView.Rows[i].Cells[3].Style.ForeColor = Color.Red; } }
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150223-164740.png[/img]
GOSTEI 0
Soeuseijothaz
22/02/2015
Tenta por Row:
locacaoDataGridView.Rows[i].Style.ForeColor = Color.Red;
GOSTEI 0
Thiago Santana
22/02/2015
Não tenho como testar no momento, mas acho que você deve testar com o Text
locacaoDataGridView.Rows[i].Cells[3].Text != string.Empty
GOSTEI 0
Jair Souza
22/02/2015
Tenta por Row:
locacaoDataGridView.Rows[i].Style.ForeColor = Color.Red;
Para Rows a única opção seria :
locacaoDataGridView.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
Mas, assim ficam todas as linha em vermelho...
GOSTEI 0
Jair Souza
22/02/2015
Não tenho como testar no momento, mas acho que você deve testar com o Text
locacaoDataGridView.Rows[i].Cells[3].Text != string.Empty
Já havia testado como .Text o código não aceita :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150223-192242.png[/img]
GOSTEI 0
Jair Souza
22/02/2015
Assim está verificando corretamente e deixa a coluna em vermelho...só falta deixar toda linha em vermelho, mas não sei como... tudo que achei na net, não funciona...
Alguém sabe ?
Alguém sabe ?
if (locacaoDataGridView.Rows[i].Cells[3].Value.ToString() != string.Empty) { locacaoDataGridView.Rows[i].Cells[3].Style.ForeColor = Color.Red; }
GOSTEI 0
Thiago Santana
22/02/2015
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { //Check your condition here If(Condition True) { e.Row.BackColor = Drawing.Color.Red // This will make row back color red } } }
Tente algo como isso e vê se resolve seu problema!
GOSTEI 0
Jair Souza
22/02/2015
Em windows form não tem o evento RowDataBound, então coloquei no CellFormatting, mas não aceita o e.Row. o DataControl e o Drawing.
GOSTEI 0
Thiago Santana
22/02/2015
Ah é Windows Form né!?
Esse código que te passei é pra Web. Mas com windows form deve ter algum evento que você possa obter a row. Só não sei de cabeça o qual!
Muito tempo que fiz algo com Windows Form.
Esse código que te passei é pra Web. Mas com windows form deve ter algum evento que você possa obter a row. Só não sei de cabeça o qual!
Muito tempo que fiz algo com Windows Form.
GOSTEI 0
Jair Souza
22/02/2015
Pois então, o CellFormatting é o similar ao RowDataBound, mas não deu, vou continuar tentando descobrir, pois isto é fundamental no aplicativo...se alguém souber, toda ajuda é bem vinda.
GOSTEI 0
Jair Souza
22/02/2015
Já procurei muito, mas não acho nada, alguém tem alguma dica ?
GOSTEI 0