+2 votos
91 visitas

Há uma página especializada com CodeBehind e um widget de formulário. A tabela (física) possui uma entidade com userinterface para change de um determinado campo.

No OnInit da página há um a delegação de métodos para o formulário supracitado:

protected override void OnInit(EventArgs e)
{
	base.OnInit(e);
	formLancamentoCC.GetEntityMethod = GetEntityMethodImplLancamentoCC;
	formLancamentoCC.CreateEntityMethod = CreateEntityMethodImplLancamentosCC;
	formLancamentoCC.SaveEntityMethod = SaveEntityMethodImplLancamentoCC;
	formLancamentoCC.DeleteEntityMethod = (EntityBase entity) => { };
	formLancamentoCC.CommandExecute += formLancamentoCC_CommandExecute;
}

Quando crio um novo registro, o método CreateEntityMethodImplLancamentosCC é chamado:

    private EntityBase CreateEntityMethodImplLancamentosCC(EntityViewBase entityView, NameValueDictionary suggestedValues, TransitoryData transitoryData)
    {
        suggestedValues = FNLancamentoCC.SugereValoresCamposCC(suggestedValues, formLancamentos.GetEntity());
        var entity = Entity.Create(entityView, suggestedValues, ObterParametrosEntidadeCC());
        return entity;
    }

Quando eu mudo o valor de algum campo que é afetado pelo userinterface (um método é chamado no FieldChanged), o CodeBehind passa novamente pelo CreateEntityMethodImplLancamentosCC.

Desta forma, o valor do campo que foi informado é sobrescrito pelo suggestedValues, nunca deixando eu realizar a alteração dele.

Quando não há userinterface, o mesmo não ocorre. O comportamento dele passar novamente no CreateEntityMethod é correto?

Observações:

O formulário que apresenta o problema é formLancamentoCC, a página também possui um formLancamento, que é passado por parâmetro no FNLancamentoCC.SugereValoresCamposCC. O método ObterParametrosEntidadeCC apenas cria uma nova instância de Benner.Tecnologia.Common.TransitoryData.

fechada com o comentário: Não mais necessário.
por (163 pontos)
republicada por | 91 visitas
Parece que o comportamento não está correto, seria legal depurar o código e entender o que está acontecendo.

Consegue anexar a stack trace da execução do evento CreateEntityMethodImplLancamentosCC ?

Perguntas relacionadas

+1 voto
1 resposta
+1 voto
1 resposta
perguntado 23 Out, 2019 por alan.jantz (163 pontos) | 98 visitas
+8 votos
1 resposta
0 votos
1 resposta
perguntado 31 Out, 2024 por Larson (436 pontos) | 1 visita
Melhores Aug 2025
    200 pontos
    Melhores 2025 Jul 28 - Aug 03
    1. Larson

      156 Pontos

    2. danilo.pereira

      96 Pontos

    3. danilo.pereira

      96 Pontos

    4. danilo.pereira

      96 Pontos

    5. luciano.fronza

      61 Pontos

    6. luciano.fronza

      61 Pontos

    7. luciano.fronza

      61 Pontos

    8. diuari.molinari

      52 Pontos

    9. diuari.molinari

      51 Pontos

    10. diuari.molinari

      51 Pontos

    517 perguntas
    566 respostas
    389 comentários
    704 usuários