Übermitteln von -Daten von einer Seite als Parameter für Menüband-Aktionen
Hinweis
In diesem Thema geht es um klassische Befehle.
Es gibt eine neue Möglichkeit, Befehle zu definieren. Siehe Moderne Befehlsübersicht (Vorschauversion)
Wenn Sie eine Aktion in einem Menüband definieren, müssen Sie oft Daten von der Seite entweder an eine JavaScript-Funktion oder eine URL übergeben. In diesem Artikel werden die Optionen für die Verwendung des Elements <CrmParameter> zum Abrufen dieser Werte beschrieben.
Formular- und Rasterkontext in Menübandaktionen
Um im Ausführungskontext (Formularkontext oder Rasterkontext) Informationen an die JavaScript-Funktion für Ihre Ribbon-Aktionen zu übergeben, geben Sie PrimaryControl für den Formularkontext oder SelectedControl für den Gitterkontext als Wert <CrmParameter>
in Ihrer Ribbondefinition an. SelectedControl wird im Grid-Kontext übergeben, sowohl für Teilraster als auch für Homepageraster. Der in PrimaryControl übergebene oder der SelectedControl-Wert wird als Argument in Ihrer JavaScript-Funktion für den Formular- bzw. Rasterkontext verwendet.
Beispielsweise ist hier eine Beispielmenübanddefinition, wo wir den PrimaryControl: Parameter an die JavaScript-Funktion geben:
<CommandDefinition Id="SampleCommand">
<EnableRules/>
<DisplayRules/>
<Actions>
<JavaScriptFunction Library="$webresource:new_mySampleScript.js" FunctionName="mySampleFunction">
<CrmParameter Value="PrimaryControl" />
</JavaScriptFunction>
</Actions>
</CommandDefinition>
In der new_mySampleScript.js Webressourcedatei, die auf das Beispiel oben verweist, definieren Sie die JavaScript-Funktion mit der primaryControl Variable als Argument. Dieses Argument liefert den Formularkontext, in dem der Ribbon-Befehl ausgeführt wird:
function mySampleFunction(primaryControl) {
var formContext = primaryControl;
// Perform operations using the formContext object
}
Sie können auch CommandProperties als <CrmParameter>
Werte in der Menübanddefinition angeben, um Informationen zum Ereignis an das Menübandsteuerelement zu geben. Sie können dies verwenden, um Kontextinformationen an eine JavaScript Funktion zu senden, in der bestimmte Aktionen basierend auf dem Kontext des Ereignisses bestimmt werden können.
Hinweis
Formularkontext und Rasterkontext für JavaScript-Funktionen für Menübandaktionen abzurufen, ist jedoch unterschiedlich vom Abrufen dieser Werte in Formularskripts. Informationen über Formularskripts und wie Sie diese Kontexte erhalten, finden Sie unter Client API Formularkontext und Client API Rasterkontext.
Formularwerte
Mit einem Formularmenüband können Sie die data.entity
.Attribut-Sammlung und die ui
.Steuerungs-Sammlung verwenden, um Werte für bekannte Spalten abzurufen.
Beispielsweise zeigt der folgende Beispielcode an, wie das Firmennamenspalte im Firmenformular abgerufen wird und wie Sie einen Wert in der websiteurl Spalte basierend auf dem Firmennamewert festlegen.
function mySampleFunction(primaryControl) {
var formContext = primaryControl;
var accountName = formContext.getControl("name").getAttribute().getValue();
// Set the WebSiteURL column if account name contains "Contoso"
if (accountName.toLowerCase().search("contoso") != -1) {
formContext.getAttribute("websiteurl").setValue("https://www.contoso.com");
}
else {
Xrm.Navigation.openAlertDialog({ text: "Account name does not contain 'Contoso'." });
}
}
Rasterwerte
Die meisten der Werte, die für das <CrmParameter>
-Element verfügbar sind, beziehen sich auf das Arbeiten mit Daten, die in einem Raster oder einem Hierarchiediagramm angezeigt werden. Durch Verwendung der Value
Paramteraufzählungsoptionen können Sie problemlos Elemente isolieren, indem Sie folgendermaßen vorgehen:
Ausgewählte Elemente
SelectedControlSelectedItemCount
SelectedControlSelectedItemIds
SelectedControlSelectedItemReferences
Alle Elemente
SelectedControlAllItemCount
SelectedControlAllItemIds
SelectedControlAllItemReferences
Nicht ausgewählte Elemente
SelectedControlUnselectedItemCount
SelectedControlUnselectedItemIds
SelectedControlUnselectedItemReferences
Für jede dieser Gruppierungen können Sie die Anzahl der Elemente und den GUID-Bezeichner sammeln. Wenn Sie die Werte an eine URL übergeben, können Sie auch
EntityReference
-Objekte abrufen, die alle Informationen enthalten, die Sie benötigen, um die Objekte eindeutig zu identifizieren. Diese Parameter treffen zu, wenn die angezeigte Seite das das Hauptraster (HomepageGrid
) oder ein Unterraster in einem Formular ist. Werden sie zusammen mit demSelectedEntityTypeName
-Parameter verwendet, haben Sie alle Informationen, die Sie an eine andere Anwendung übergeben müssen.
Andere Kontextinformationen
Zusätzlich zu den Datenwerten können Sie weitere Kontextinformationen abrufen, indem Sie <CrmParameter> verwenden. Die folgenden Optionen können als Wert für das CrmParameter
Element: OrgName
, OrgLcid
und UserLcid
verwendet werden.
Für eine <Url>
Aktion können Sie auch das PassParams
verwenden, um kontextbezogenene Informationen zu berücksichtigen.
Die Value
Optionen PrimaryEntityTypeName
und FirstPrimaryItemId
stellen Informationen zu einem Tabellendatensatz zur Verfügung. Sie können PrimaryItemIds
für ein HomepageGrid
-Menüband verwenden, um eine Liste aller angezeigten Elemente zu erhalten.
Siehe auch
Anpassen des Menübandes
Parameter mit dem Menüband an eine URL übergeben
Definieren von Menübandaktionen
Festlegen benutzerdefinierter Aktionen zur Änderung des Menübands
Formularkontext der Client-API
Rasterkontext der Client-API
Hinweis
Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)
Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).