none
CRM 2013 Picklist Element per JS selektieren

    Frage

  • wir füllen eine Picklist per Schleife:
    ...
    var obj = new Object();
    obj.value = logicalName; // Schema und Typ z.B. "org_abr;double"
    obj.text = displayName; // Anzeigename z.B. "Abrechnung"
    feldnameOptionSet.addOption(obj);
    ...

    Im CRM4 wurde ein bestimmter Eintrag wie folgt selektiert:
    crmForm.all.feldname_auswahlliste.DataValue = "org_abr;double";

    Im CRM2011 wie folgt:
    document.getElementById("feldname_auswahlliste").options.value = "org_abr;double";

    Im CRM2013 funktioniert dies nicht mehr. Wie kann ein Element per JS selektiert werden?

    Montag, 16. Dezember 2013 15:58

Alle Antworten

  • Hallo Martin,

    vielleicht passt dieser Link: 
    http://social.microsoft.com/Forums/en-US/a2ad8b0c-69b6-40e9-a866-b0d2884d6468/how-to-set-optionset-values-in-javascript-crm-2011?forum=crm

    Der Bezug mit document wird vermutlich auch in CRM 2011 nicht mehr uneingeschränkt funktioniert haben. Zumindest ab RU 12 wegen Cross-Browser-Umstellung. Das wurde aber bei Nutzung des IE noch tolertiert.  Ich denke mal, das ist bei RU 13 nun rausgefallen.


    Herzliche Grüße / Best regards Markus Müller If this post answers your question, please click "Mark As Answer" on the post and "Mark as Helpful"

    Montag, 16. Dezember 2013 21:02
  • Hallo Martin,

    wie Markus schon angeführt hat, ist der von dir verwendete Code noch nie supportet gewesen.

    Im SDK ist beschrieben, wie neue Werte zu einem OptionSet hinzugefügt werden können.

    var advanceOption = new Option();
    advanceOption.value = 2;
    advanceOption.text = "Advance";
    Xrm.Page.getControl( "optionsetfieldname" ).addOption( advanceOption, 3 );


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM
    Blog
    Website XING LinkedIn Facebook Twitter

    Dienstag, 17. Dezember 2013 07:38
    Moderator
  • Danke, aber im CRM 2013 funktioniert dies nicht:
    ...
    var options = Xrm.Page.getAttribute("feldname_auswahlliste").getOptions(); -> immer leer (options.length = 0)
    ...
    // Folgende Zuweisungen funktionierten auch nicht:
    Xrm.Page.getAttribute("feldname_auswahlliste").setValue(2);
    Xrm.Page.getAttribute("feldname_auswahlliste").setValue("org_abr;double");
    Xrm.Page.getAttribute("feldname_auswahlliste").setValue("Abrechnung");

    Dienstag, 17. Dezember 2013 08:37
  • Danke für die Hinweise, aber genau dies funktioniert nicht im CRM 2013

    Neues Beispiel - Füllen funktioniert per:
    var advanceOption1 = new Option();
    advanceOption1.value = 1;
    advanceOption1.text = "A";
    Xrm.Page.getControl("auwahl").addOption(advanceOption1, 0);

    var advanceOption2 = new Option();
    advanceOption2.value = 2;
    advanceOption2.text = "B";
    Xrm.Page.getControl("auwahl").addOption(advanceOption2, 1);

    var advanceOption3 = new Option();
    advanceOption3.value = 3;
    advanceOption3.text = "C";
    Xrm.Page.getControl("auwahl").addOption(advanceOption3, 2);

    // Leider funktioniert die Auswahl nicht!?
    Xrm.Page.getAttribute("auwahl").setValue("B");

    Dienstag, 17. Dezember 2013 08:45
  • Hallo,

    jetzt verstehe ich nur Bahnhof, funktioniert der Code nun oder nicht? Bei mir jedenfalls funktioniert der Code, den ich gepostet habe. Und dein Code zum füllen sieht irgendwie genau so aus, wie ich ihn oben beschrieben habe.

    Um jetzt den Wert eines OptionSets zu setzen verwende ich diesen Code:

    Xrm.Page.getAttribute('Feldname').setValue(parseInt(Wert));


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM
    Blog
    Website XING LinkedIn Facebook Twitter

    Dienstag, 17. Dezember 2013 12:25
    Moderator
  • Im CRM2013 (RU1) funktioniert dies nicht. Der Picklisteneintrag kann weder manuell noch per JS ausgewählt werden.
    Listbox ist "grau" und angezeigt wird "--".
    var advanceOption1 = new Option();
    advanceOption1.value = 1;
    advanceOption1.text = "A";
    Xrm.Page.getControl("auswahlliste").addOption(advanceOption1, 0);

    var advanceOption2 = new Option();
    advanceOption2.value = 2;
    advanceOption2.text = "B";
    Xrm.Page.getControl("auswahlliste").addOption(advanceOption2, 1);

    var advanceOption3 = new Option();
    advanceOption3.value = 3;
    advanceOption3.text = "C";
    Xrm.Page.getControl("auswahlliste").addOption(advanceOption3, 2);

    // Leider funktioniert die Auswahl bei mir nicht nicht!?
    Xrm.Page.getAttribute("auswahlliste").setValue(parseInt(1));

    // auch das nicht
    Xrm.Page.getAttribute("auswahlliste").setValue(1);
    Xrm.Page.getAttribute("auswahlliste").setValue("A");
    Xrm.Page.getAttribute("auswahlliste").setValue(parseInt("A"));

    Dienstag, 17. Dezember 2013 15:24