Microsoft Dynamics CRM 2015 | Working w/ composite controls

Address1_composit_control

Ich war kürzlich an einer Anfrage in unserer CRM Facebook Gruppe bezüglich der Script-Entwicklung rund um die “Composite Controls” beteiligt. Konkret ging es um setFocus().

In vielen Entitäten finden wir seit der Version 2013 die so genannten Composite Controls. Diese aus Address-Informationen zusammengesetzten Felder verfügen über die Eigenschaften eines Flyout Menüs. Sprich, will man beispielsweise den Ort einer Adresse ändern, so klickt man auf das Feld und ein Flyout-Menü präsentiert einem dann die eigentlichen Address-Felder. Schaut man sich die Maske in dem Designer an, so stellt man fest, dass diese Felder nicht mehr auf der Maske zu finden sind, wohl aber noch in der Liste aller verfügbaren Felder.

Für die Entwickler hat sich eigentlich kaum etwas geändert, denn nach wie vor kann man den einzelnen Feldern individuelle onChange()-Ereignisse zuweisen. Doch kommt es zur Fragestellung, wie man die Felder anspricht (da sie ja nicht mehr auf der Maske sind), greifen viele zu DOM Untersuchungen. Das ist m.E. aber gar nicht notwendig. Denn jedes einzelne Feld aus den Flyout-Menüs sind über eine supportete Methode ansprechbar und damit z.B. auch Methoden, wie etwa setFocus() anwendbar.

Das Ansprechen des Feldes folgt nach dem SDK der Konvention:

<composite control name>_compositionLinkControl_<constituent attribute name>

Daraus ergibt sich für das Feld address_line1 etwa ein Aufruf wie:

Xrm.Page.getControl("address1_composite_compositionLinkControl_address1_line1")

Da man nun über die volle Kontrolle des Feldes verfügt, kann man in der Folge alle möglichen Ereignisse damit ausführen.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s