Jump to content
Sign in to follow this  
Hiroshi Kazuo

Ordenar DataGridView

Recommended Posts

Boa tarde amigos e amigas,

Estou concluindo um sistema de RPA, e me deparei com o seguinte dilema.

Toda vez que eu altero alguma linha na gridview, logicamente aquela linha vai para ultima posição na gridview.

Então pensei, tenho que ordenar.......(até ai tudo bem ^^).

Me deparei então com a seguinte função..... "SORT". Fui ler a respeito e tentei fazer alguns testes.

Eu programo usando as camadas de negócio... (Model, BLL, DAL).

Pois então criei a função para atualizar a gridview.

public void AtualizaGrid()        {            #region "Essa parte do Código é para listar os valores do banco de dados na tabela da gridview"            try            {                GridListarEmpresa.DataSource = EmpresaBLL.listar();            }            catch (Exception ex)            {                MessageBox.Show(ex.Message);            }            #endregion        }

Dai na "ação" do botão de alterar... após alterar eu atualizo a 'gridview' chamando a função e logo após mando ordenar.

private void btnAlterarCadastrar_Click(object sender, EventArgs e)        {            #region "Essa parte do Código é para Alterar os valores no banco de dados."            if (validarAlteracao() == true)            {                InformacaoEmpresa empresa = new InformacaoEmpresa();                empresa.Codigo = int.Parse(tbAlterarCodigo.Text);                empresa.NomeEmpresa = tbAlterarNomeEmpresa.Text.ToUpper();                empresa.Cnpj = tbAlterarCnpj.Text;                empresa.DataCadastro = Conversao.dataParaDateTime(dtAlterarDataCadastro.Text);                empresa.Endereco = tbAlterarEndereco.Text.ToUpper();                empresa.Bairro = tbAlterarBairro.Text.ToUpper();                empresa.NumeroEndereco = tbAlterarNumeroRua.Text;                empresa.Cidade = tbAlterarCidade.Text.ToUpper();                empresa.Cep = tbAlterarCep.Text;                empresa.Estado = Convert.ToString(cbbAlterarEstado.SelectedItem).ToUpper();                empresa.NumeroContato = tbAlterarContato.Text;                int alterou = EmpresaBLL.salvar(empresa);                if (alterou > 0)                {                    MessageBox.Show("Empresa Alterada com Sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);                    tbAlterarCodigo.Text = "";                    tbAlterarNomeEmpresa.Text = "";                    tbAlterarCnpj.Text = "";                    dtAlterarDataCadastro.Value = DateTime.Now;                    tbAlterarEndereco.Text = "";                    tbAlterarBairro.Text = "";                    tbAlterarNumeroRua.Text = "";                    tbAlterarCidade.Text = "";                    cbbAlterarEstado.SelectedIndex = 0;                    tbAlterarCep.Text = "";                    tbAlterarContato.Text = "";                    /* GridListarEmpresa.AllowUserToOrderColumns = true;                     ListSortDirection direction;                     direction = ListSortDirection.Ascending;                     GridListarEmpresa.Sort(GridListarEmpresa.Columns[0], direction);*/                    ////////////////////////////  Parte do código que estou querendo solução galera ///////////////////                                        AtualizaGrid();                    GridListarEmpresa.Sort(GridListarEmpresa.Columns[0], ListSortDirection.Ascending);                   ///////////////////////////////////////////////////////////////////////////////////////////////////                }                else                {                    MessageBox.Show("Não foi possivel Alterar", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);                }            }            #endregion        }

Entretanto após atualizar a gridview ela não fica ordenada e dá a seguinte mensagem de erro

"InvalidOperationException was unhandled"

'O controle DataGridView deve ser associado a um objeto IBindingList para ser classificado.'

Também já tentei habilitando o ordenar na própria gridview e nada deu certo.

E tentei essa outra maneira:

/* GridListarEmpresa.AllowUserToOrderColumns = true;                     ListSortDirection direction;                     direction = ListSortDirection.Ascending;                     GridListarEmpresa.Sort(GridListarEmpresa.Columns[0], direction);*/

Sem sucesso.

Alguma alma caridosa poderia me ajudar? Só falta isso para eu finalizar o sistema! o.O

Edited by Hiroshi Kazuo

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

Seja bem vindo ao Cronus-Emulator.
É sempre um prazer te-lo conosco.
Você pode visualizar nossas áreas de suporte para encontrar suas soluções sem a necessidade de se registrar!
Registrando em nossa comunidade, você poderá conhecer mais sobre nosso projeto, criar tópicos, responder tópicos existentes, baixar milhares de recursos em nosso sistema de downloads, participar de nossa comunidade, customizar seu perfil e muito mais... Se você já possui uma conta, faça seu login - ou crie uma conta. Também temos integração com Google+ e Facebook.

×
×
  • Create New...