+2 votos
38 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 (132 pontos)
republicada por | 38 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 (132 pontos) | 17 visitas
+7 votos
1 resposta
+4 votos
2 respostas
perguntado 20 Dez, 2019 por tamiris.lima (17 pontos) | 26 visitas
Melhores Jan 2020
  1. diuari.molinari

    38 Pontos

  2. juliano.pezzini

    36 Pontos

  3. Gregory

    15 Pontos

  4. leandro.piscke

    15 Pontos

  5. willian.metalsystem

    12 Pontos

  6. alan.jantz

    12 Pontos

  7. regina.silva

    9 Pontos

  8. Cesar.Albuquerque

    8 Pontos

  9. wilson.junior

    8 Pontos

  10. maicon.pereira

    6 Pontos

200 pontos
Melhores 2020 Jan 20 - 26
    395 perguntas
    447 respostas
    329 comentários
    491 usuários