none
Registro não permanece após salvar com BindingSource em estado Filter() RRS feed

  • Pergunta

  • Pessoal,

    Não sei porque, mas, se meu BindingSource está em estado normal, ou seja, se abro a janela e aplico um BindingSource.AddNew() e salvo o registro corrente, após salvo, o registro permance na minha janela, que é o que desejo, pois assim terei como editar sem ter que procurar um registro que acabei de incluir, até aí tudo bem, mas o que me deixa intrigado é que se antes de Incluir um novo registro eu tiver usado o método Filter() no BindingSorce, após salvar o registro, os controles ficam em branco e ai tenho que usar um filter() para que aquele registro apareça na janela.

    Alguem poderia me explicar porque isso acontece e me dar uma dica de como salvar o registro, seja com ou sem o bindingsource em estado Filter fazer com que ele permaneça visivel na minha janela.

    Agradecido pela oportunidade.
    ().


    JOAB
    domingo, 8 de agosto de 2010 23:22

Respostas

Todas as Respostas

  • Prezado,

    O ideal é que você limpe o filtro antes de inserir o registro novo...

    http://www.windowsdevelop.com/windows-forms-general/datagridview-bound-to-a-filtered-bindingsource-33237.shtml


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    • Marcado como Resposta JOAB_ARAUJO segunda-feira, 9 de agosto de 2010 12:14
    segunda-feira, 9 de agosto de 2010 11:58
    Moderador
  • Olá André.

    Agradecidos pela resposta.

    Tentei usar o método ResetBinding(), não deu certo, depois usei o RemoveFilter(), mas ai me era retornado todos os registros da tabela.

    Quer dizer que se for inserir um novo registro e o Bindingsource estiver em estado de Filter devo usar a linha "Filter = null" antes do AddNew(), ok Entendido.

     

     


    JOAB
    segunda-feira, 9 de agosto de 2010 12:14
  • Olá André

    Conforme as instruções, no meu botão de Inclusão de registro, usei as linhas:

         MeuBindsource.Filter = null;

         MeuBindsource.AddNew()

    e depois

        MeuBindsource.RemoveFilter()

        MeuBindsource.AddNew();

    Realmente o novo registro é exibido após ser salvo, mas um outro problema, nos dois modos, quando o filtro é removido, o meu BindingSource exibe todos os registro da tabela causando um efeito indesejado para o usuário e eu não desejo que seja assim, desejo que o filtro seja removido e o Bindingsource não exiba nenhum registro e depois eu possa inserir uma nova linha e depois de salva-la este registro seja exibido apenas ele no meu form.

    Tem como?


    JOAB
    quinta-feira, 12 de agosto de 2010 00:54
  • Prezado,

    Acho que tenho uma ideia... Se após salvar você alterar o filtro utilizando uma condição que somente o novo registro seja exibido (fazendo um filtro pelo código, por exemplo), não funcionaria?


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    quinta-feira, 12 de agosto de 2010 11:50
    Moderador
  • Olá Andre.

    Eu já uso esta ideia em outros projetos meu, mas acontece que quando voçê salva o novo registro e ele retorna este registro pelo filtro acontece um efeito indesejavel, do seguinte modo:

    Depois que o registro é salvo e como o filtro é aplicado todos os controles ficam em branco e depois me é retornado este novo registro filtrado, como o espaço de tempo entre salvar e filtrar é longo para que este filtro seja retornado, nota-se claramente que é uma gambiarra.

    Faça o teste para ver!!

    Agradeço pelo seu esforço e dicas.


    JOAB
    quinta-feira, 12 de agosto de 2010 14:43