Ü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 dem SelectedEntityTypeName-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, OrgLcidund 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).