Microsoft Dynamics CRM 2011 | Felder mehrfach einfügen & JScript

Eines der neuen Features von Microsoft Dynamics CRM 2011 ist es, ein Feld mehrfach auf einer Form zu hinterlegen.

In Sachen JScript Code kann dies unter Umständen mal zu ungewollten Ergebnissen führen. Denn es ist zwar möglich, anzugeben, dass ein Feld nicht von der Form entfernt werden darf, damit der hinterlegte Code noch funktioniert. Aber es ist nicht möglich zu sagen, dass das Feld kein zweites oder x-tes Mal auf der Form hinterlegt werden darf, damit der Code korrekt funktioniert.

Und so kann es schon mal vorkommen, dass ein hinterlegtes Script (z.B. zum Ausblenden eines Feldes) sich nur auf das erste Element auf der Form auswirkt, nicht jedoch auf das Zweite, Dritte, ….

Für jedes Attribut wird eine so genannte Control Collection erzeugt. Und der einfachste Weg ist diese Control Collection in einer Schleife anzusprechen.

var newattrib = Xrm.Page.getAttribute(„new_field“)
newattrib.setRequiredLevel(„required“);
newattrib.controls.forEach( function (control, index)
{
control.setDisabled(false);
control.setVisible(false);
});

Obiges Beispiel zeigt, wie Ihr jedes Element ansprechen könnt.

Ein anderer Weg wäre:

Xrm.Page.getControl(’new_field‘).setVisible(false);
Xrm.Page.getControl(’new_field1′).setVisible(false);

In diesem Verfahren wird hinter das Feld einfach eine fortlaufende Nummer hinzugefügt, die das jeweilige Element direkt anspricht

 

Im Microsoft Dynamics CRM SDK findet Ihr weitere Beispiele unter

SDK\SampleCode\JS\FormScripts\SDK.AttributesCollectionSamples.js

und eine ausführliche Erklärung.

 

Technorati Tags:

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