Ir para conteúdo

Arquivado

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

ZecaLoteiro

Manter a ordenação do DataGridView

Recommended Posts

Oii, boa tarde,

 

Tenho um DataGridView e preciso manter a ordem que o usuário selecionou após uma atualização dos registros...

 

Para isso usei a seguinte lógica:

Armazeno o campo e a direção que o grid está ordenado, depois após atualizar os dados, eu forço a ordenação.

 

 

Mas não está funcionando. Armazenei no evento Sorted do grid, e ordenei após uma determinada ação...

 

 

  Dim sortedColumn As DataGridViewColumn
  Dim sortedOrdem As Object = Nothing
Private Sub gridReqCompras_Sorted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles gridReqCompras.Sorted
    sortedColumn = sender.SortedColumn
    sortedOrdem = sender.SortOrder
  End Sub
 Private Sub carregaRequisicoes()
    Dim query As String
    query = "SELECT * FROM ReqConsumo R" & _
    Dim result As DataTable = ConnectionFactory.executeQueryDataTable(query, cn)
    gridReqCompras.DataSource = result
    gridReqCompras.Sort(sortedColumn, sortedOrdem)
  End Sub

 

 

Porém, no DEBUG reparei que antes da penultima linha "gridReqCompras.Sort(sortedColumn, sortedOrdem)" a variável "sortedOrdem" possui o seguinte valor:

 

Object.Ascending

 

Mas após passar pela linha que deveria setar a ordenação para Object.Ascending, a variável assume o valor:

 

Object.Descending

 

O que faz com que meu grid fique invertido....

 

Alguém sabe o que pode ser isso??

 

Desde já obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei alguns topicos sobre o assunto, mas não consegui implementar...

Criei o App.config, mas não consegui salvar essa informação no mesmo... pode me dar uma força??

Desde já muito obrigado.

 

Att,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver da seguinte forma:

 

If gridReqCompras.SortOrder = Windows.Forms.SortOrder.Ascending Then
        sortedOrdem = ListSortDirection.Ascending
      Else
        sortedOrdem = ListSortDirection.Descending
      End If

 

Pelo que entendi era alguma incompatibilidade entre ListSortDirection e Windows.Forms.SorteOrder ....

 

Obrigado ;)

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.