none
Verificar valor de célula de um DataGrid e alterá-lo RRS feed

  • Pergunta

  • Olá,

    Sou iniciante na plataforma e estou com o seguinte desafio: Tenho uma dataGrid preenchida através de um web service. Ok.

    Eu gostaria de tratar essa grid, pois tenho uma coluna, que é DateTime, que dependendo do caso não tem valor (1/1/0001).

    Preciso verificar se na determinada coluna, a célula tem esse valor, caso tiver eu altero preenchendo alguma mensagem.

    Alguém pode me ajudar? Desculpem se parece algo bem simples.. eu sei rs mas estou engatinhando nesse mundo da programação.

    Obrigado!

    sexta-feira, 11 de outubro de 2013 14:06

Todas as Respostas

  • Basta você perccorer as linhas da sua grid e saber a célula deste seu campo assim :

     foreach (GridViewRow item in nomesuaGrid.Rows)
                {
                   if(item.Cells[0].Text == null)
                     //suamensagem               
                      else
                      //tem dados                
                               }

    sexta-feira, 11 de outubro de 2013 14:27
  • Obrigado Daniel pela ajuda, mas nem GridViewRow nem Rows aparecem para mim

    o que eu tenho disponível é DataGridRow e não sei o que se assemelharia com o Rows aqui neste projeto.

    Preciso adicionar alguma eferência? Lembrando que estou num projeto Silverlight 4.

    Valeu!

    sexta-feira, 11 de outubro de 2013 14:41
  • Pelo que pesquisei a GridViewRow utiliza o Assembly System.Web, e minha aplicação é Silverlight.

    Precisaria de ago semelhante a isso.

    sexta-feira, 11 de outubro de 2013 15:53
  • Nossa nem percebi tenta isso :

    foreach (DataGridRow rowItem in grid.Rows) 
                { 
                      //aqui a logica . . . 
                 }
    

    Segue o mesmo exemplo aqui explica direitinho isso.

    http://developers.de/blogs/damir_dobric/archive/2010/05/02/accessing-of-rows-in-silverlight-datagrid.aspx

    sexta-feira, 11 de outubro de 2013 16:56
  • Pior que minha grid é do tipo DataGrid e essa propriedade Rows não existe ... estou procurando algo que seja similar =/ 


    sexta-feira, 11 de outubro de 2013 17:18
  • Olá,Haroldo

    Uma forma de você chegar nessa informação é no momento que está sendo criado o grid dentro do evento Loading Row.

    Exemplo tenho uma grid e esta chegando através do evento

    <data:DataGrid  x:Name="grid"  AutoGenerateColumns="False" LoadingRow="grid_LoadingRow">
    <data:DataGrid.Columns>
    <data:DataGridTextColumn Header="Data" Width="80"  IsReadOnly="True" Binding="{Binding DatEmi}"/>               
    </data:DataGrid.Columns>
    </data:DataGrid>
    
    
    private void grid_LoadingRow(object sender, DataGridRowEventArgs e)
    {
      Pedido p = e.Row.DataContext as Pedido;
     	
      TextBlock txtDatEmi = dtgConsulta.Columns[0].GetCellContent(e.Row) as TextBlock;
      txtDatEmi.Text = "Erro";
    }


    Américo Arvani


    quinta-feira, 3 de julho de 2014 12:48