none
[CRM 2011] Erro ao Salvar campo PickList preenchido dinamicamente. RRS feed

  • Pergunta

  • Criei um campo PickList em branco e estou preenchendo dinamicamente com os comandos abaixo, mas o valor não e salvo no banco de dados, alguém sabe o porque?

    var opt1 = new Option();
        opt1.text = "account";
        opt1.value = 1;
     Xrm.Page.getControl("new_entidade").addOption(opt1);

    ou 

       var opt1 = new Option();
        opt1.text = "account";
        opt1.value = 1;
        Xrm.Page.getControl("new_entidade").addOption(opt1,1);

    quarta-feira, 16 de outubro de 2013 17:32

Respostas

  • Boas pessoal,

    O problema do Daniel não é afectar o campo penso eu. O problema dele é ter items na picklist dinâmicos e esses valores não estarem na BD, quando afectamos o valor de uma picklist ele vai validar o valor seleccionado com a base dados e como não tem valores ele dá erro.

    Por essa razão propus a estratégia de poder colocar todos os valores da BD e depois filtrar em Javascript os valores.


    Pedro Azevedo Crm Specialist 4.0\2011

    • Marcado como Resposta Daniel Jonathan segunda-feira, 9 de dezembro de 2013 17:46
    terça-feira, 22 de outubro de 2013 10:16

Todas as Respostas

  • Boas Daniel,

    Mas esse é um valor válido para essa picklist? Não podes acrescentar a picklist dinâmicamente sem adicionares ao optionset da entidade. Estes valores são completamente dinâmicos? Ou tens uma lista e dentro dessa lista é filtrado mediante outros valores?

    Se for o último caso, o que podes fazer é adicionar todas as opções e depois no onload ou no "disparo" de outro evento poderes retirar as opções que não queres. Outra solução é adicionar a optionset da entidade via Javascript.

    Espero ter ajudado.
    Se respondi a sua pergunta por favor marque como resposta e\ou como útil.


    Pedro Azevedo Crm Specialist 4.0\2011

    • Sugerido como Resposta Azevedo PedroMVP quinta-feira, 17 de outubro de 2013 09:54
    quinta-feira, 17 de outubro de 2013 09:54
  • Eu uso 

    Xrm.Page.getAttribute("campo").setValue(1);

    e funciona perfeitamente.


    Tiago Henrique Consultor de Implantação

    quinta-feira, 17 de outubro de 2013 16:56
  • Também utilizo a solução com Xrm.Page.getAttribute("campo").setValue(1);

    apenas setando o valor do picklist no final .

    terça-feira, 22 de outubro de 2013 10:12
  • Boas pessoal,

    O problema do Daniel não é afectar o campo penso eu. O problema dele é ter items na picklist dinâmicos e esses valores não estarem na BD, quando afectamos o valor de uma picklist ele vai validar o valor seleccionado com a base dados e como não tem valores ele dá erro.

    Por essa razão propus a estratégia de poder colocar todos os valores da BD e depois filtrar em Javascript os valores.


    Pedro Azevedo Crm Specialist 4.0\2011

    • Marcado como Resposta Daniel Jonathan segunda-feira, 9 de dezembro de 2013 17:46
    terça-feira, 22 de outubro de 2013 10:16
  • Daniel,

    Concordo com o Pedro Azevedo sobre conter os dados no picklist e somente ocultar as opções que não necessita, a única coisa que eu acrescentaria é o setSubmitMode no OnSave do Formulário para forçar a Gravação.

    Xrm.Page.getAttribute("fieldname").setSubmitMode("always");

    Abraços

    José André Filho - Consultor Dynamics CRM

    sexta-feira, 1 de novembro de 2013 00:37