XML für das Menüband für die Serverkomponente

Letzte Änderung: Montag, 7. Februar 2011

Gilt für: SharePoint Foundation 2010

Im folgenden Thema wird das XML für das Menüband für die Serverkomponente beschreiben, und die für die Attribute verwendeten Werte werden erklärt.

Exemplarische Vorgehensweise zum XML für das Menüband für die Serverkomponente

    <CommandUIExtension>
      <CommandUIDefinitions>
        <CommandUIDefinition 
          Location="Ribbon.Tabs._children">
          <Tab 
            Id="Ribbon.CustomTabExample" 
            Sequence="501" 
            Description="My New Tab" 
            Title="My New Tab">

Durch den Location-Wert für das CommandUIDefinition-Element wird definiert, an welcher Stelle das darin enthaltene Steuerelement einen Rendervorgang ausführen wird. In diesem Beispiel verweisen Sie auf die Tabs-Auflistung für das Menüband für die Serverkomponente. Das Menüband erhält von der _children-Konvention eine Aufforderung, zum Rendern des Menübands das folgende XML in die Ausgabe einzufügen. In diesem Fall fügen Sie das XML für das Tab-Element ein. Durch das Sequence-Attribut wird definiert, an welcher Stelle die Registerkarte im Vergleich zu anderen Registerkarten gerendert wird. Für die standardmäßigen Registerkarten werden Vielfache von 100 verwendet, daher sollte es sich beim Sequence-Attribut nicht um ein Vielfaches von 100 handeln, sodass keine Konflikte entstehen. Konflikte sollten vermieden werden, damit eine korrekte Verarbeitung des Menüband-XML sichergestellt werden kann.

            <Scaling
              Id="Ribbon.CustomTabExample.Scaling">
              <MaxSize
                Id="Ribbon.CustomTabExample.MaxSize" 
                GroupId="Ribbon.CustomTabExample.CustomGroupExample" 
                Size="OneLargeTwoMedium"/>
              <Scale 
                Id="Ribbon.CustomTabExample.Scaling.CustomTabScaling"
                GroupId="Ribbon.CustomTabExample.CustomGroupExample" 
                Size="OneLargeTwoMedium" />
            </Scaling>

Beim Erstellen einer benutzerdefinierten Registerkarte sollten Sie definieren, wie die Registerkarte skaliert wird, falls Steuerelemente hinzugefügt werden. Hierzu wird das Scaling-Element in Kombination mit dem GroupTemplate-Element verwendet. Durch das MaxSize-Element wird die maximale Größe der Steuerelemente in der Gruppe definiert. Durch das Scale-Element wird definiert, wie die Gruppe in unterschiedlichen Situationen skaliert wird. Mithilfe des GroupId-Attributs wird der Skalierungsgröße eine Gruppe zugewiesen. Das Size-Attribut wird durch das Layout-Element definiert, welches wiederum später in diesem Thema definiert wird.

            <Groups Id="Ribbon.CustomTabExample.Groups">
              <Group 
                Id="Ribbon.CustomTabExample.CustomGroupExample" 
                Description="This is a custom group!" 
                Title="Custom Group" 
                Sequence="52" 
                Template="Ribbon.Templates.CustomTemplateExample">
                <Controls Id="Ribbon.CustomTabExample.CustomGroupExample.Controls">
                  <Button 
                    Id="Ribbon.CustomTabExample.CustomGroupExample.HelloWorld" 
                    Command="CustomTabExample.HelloWorldCommand" 
                    Sequence="15" 
                    Description="Says Hello to the World!" 
                    LabelText="Hello, World!" 
                    TemplateAlias="cust1"/>

Durch das Groups-Element werden die Gruppen definiert, die auf der Registerkarte angezeigt werden sollen. Das Group-Element verfügt über ähnliche Attribute wie andere Steuerelemente und darüber hinaus über ein Template-Attribut. Mithilfe des Template-Attributs wird auf das GroupTemplate-Element verwiesen, das später in diesem Thema definiert wird. Das Controls-Element enthält die Steuerelemente, die in der Gruppe gerendert werden. Die zulässigen Steuerelementtypen werden unter Architektur des Menübands der Serverkomponente definiert. Durch die Steuerelemente innerhalb der Gruppe müssen die Attribute TemplateAlias und Command definiert werden. Wie Registerkarten verfügen alle Steuerelemente über ein Sequence-Attribut, durch das definiert wird, an welcher Stelle in der Gruppe sie gerendert werden. Standardmäßige Steuerelemente basieren auf Vielfachen von 10, daher sollten für benutzerdefinierte Steuerelemente keine Vielfachen von 10 verwendet werden, sodass keine Konflikte entstehen. Das Command-Attribut wird vom CommandUIHandler-Element verwendet, ist aber selbst dann erforderlich, wenn das CommandUIHandler-Element nicht angegeben ist. Durch das TemplateAlias-Attribut wird definiert, an welcher Stelle das Steuerelement im Verhältnis zum GroupTemplate-Element gerendert wird.

          <GroupTemplate Id="Ribbon.Templates.CustomTemplateExample">
            <Layout 
              Title="OneLargeTwoMedium" 
              LayoutTitle="OneLargeTwoMedium">
              <Section Alignment="Top" Type="OneRow">
                <Row>
                  <ControlRef DisplayMode="Large" TemplateAlias="cust1" />
                </Row>
              </Section>
              <Section Alignment="Top" Type="TwoRow">
                <Row>
                  <ControlRef DisplayMode="Medium" TemplateAlias="cust2" />
                </Row>
                <Row>
                  <ControlRef DisplayMode="Medium" TemplateAlias="cust3" />
                </Row>
              </Section>
            </Layout>
          </GroupTemplate>

Beim Definieren einer Gruppenvorlage sollten Sie eine anderes CommandUIDefinition-Element definieren. Für das CommandUIDefinition-Element ist Ribbon.Templates._children als Location-Wert festgelegt. Dieses Muster entspricht dem für Gruppen und Registerkarten.

Das GroupTemplate-Element enthält ein Layout-Element, das wiederum Section- oder OverflowSection-Elemente beinhaltet. Das Layout-Element verfügt über ein Title-Attribut, das für die Size-Attribute auf den MaxSize- und Scale-Elementen verwendet wird.

Das Section-Element verfügt über zwei Attribute. Durch das Alignment-Attribut wird definiert, an welchen Stellen die Steuerelemente in den folgenden Row-Elementen positioniert werden. Durch das Type-Attribut wird die Anzahl der Zeilen definiert, die innerhalb des Abschnitts gerendert werden sollen. Ein Section-Element umfasst maximal drei Row-Elemente.

Das Row-Element beinhaltet ein oder mehrere ControlRef-Elemente. Durch die ControlRef-Elemente wird jeweils definiert, wie einzelne Steuerelemente auf dem Menüband gerendert werden. Das DisplayMode-Attribut hat folgende Werte.

VorsichtVorsicht

Nicht für alle Steuerelemente sind alle DisplayMode-Werte verfügbar.

Wert

Beschreibung

Small

Wird als kleines Symbol ohne Beschriftungstext gerendert.

Medium

Wird als Symbol mit 16x16 Pixeln mit Beschriftungstext gerendert.

Large

Wird als Symbol mit 32x32 Pixeln mit Beschriftungstext gerendert.

Text

Wird nur als Text gerendert.

Sie können statt eines Section-Elements auch ein OverflowSection-Element verwenden. Durch dieses Element wird ein Bereich definiert, in dem mehrere Steuerelemente ohne das Row-Element gerendert werden können. Alle Steuerelemente werden entsprechend der durch das DisplayMode-Attribut definierten Größe alle gleich groß gerendert. Durch die Attribute DividerAfter und DividerBefore wird definiert, an welcher Stelle der Trennstreifen angezeigt wird, wenn der Überlaufabschnitt gerendert wird.

Beim Hinzufügen von Steuerelementen an den standardmäßigen Stellen auf dem Menüband sollten Sie die Gruppenvorlage und die Skalierung berücksichtigen. Durch das Hinzufügen eines Steuerelements an den standardmäßigen Stellen kann das Renderverhalten der Gruppe verändert werden. Die meisten standardmäßigen Gruppenvorlagen enthalten Überlaufabschnitte, die durch die benutzerdefinierten Steuerelemente vergrößert werden. In erweiterten Szenarien können Sie die Skalierung außer Kraft setzen, um die Steuerelemente entsprechend der Anforderungen für Ihren Entwurf zu rendern.

      <CommandUIHandlers>
        <CommandUIHandler 
          Command="CustomTabExample.HelloWorldCommand" 
          CommandAction="javascript:alert('Hello, world!');" />
        <CommandUIHandler 
          Command="CustomTabExample.GoodbyeWorldCommand" 
          CommandAction="javascript:alert('Good-bye, world!');" />
        <CommandUIHandler 
          Command="CustomTabExample.LoveWorldCommand" 
          CommandAction="javascript:alert('I love you, world!');" />
      </CommandUIHandlers>
    </CommandUIExtension>

Das CommandUIHandlers-Element enthält alle CommandUIHandler-Elemente. Durch die CommandUIHandler-Elemente wird definiert, wie Steuerelemente auf dem Menüband auf eine Aktion reagieren. Das Command-Attribut ist ein eindeutiger Name für den Befehl, der in Verbindung mit dem Command-Attribut verwendet wird, das mit den Steuerelementen definiert wurde. Das CommandAction-Attribut enthält die für das Steuerelement ausgeführte Aktion. Dabei kann es sich um ECMAScript (JavaScript, JScript), eine URL oder um etwas handeln, das zuvor in einem UrlAction-Element enthalten war.

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="https://schemas.microsoft.com/sharepoint/">
  <CustomAction 
    Id="MyCustomRibbonTab" 
    Location="CommandUI.Ribbon.ListView" 
    RegistrationId="101" 
    RegistrationType="List"> 
    ...
  </CustomAction>
</Elements>

Beim Anpassen des Menübands verwenden Sie ein CustomAction-Element zusammen mit Menüband-XML. Weitere Informationen zu benutzerdefinierten Aktionen finden Sie unter Benutzerdefinierte Aktion. Das CustomAction-Element erhält vom Location-Attribut die Information, an welcher Stelle die Anpassung vorgenommen werden soll. In der folgenden Tabelle werden die Werte beschrieben.

Wert

Beschreibung

CommandUI.Ribbon

Die Anpassung wird überall für den angegebenen RegistrationId-Wert angezeigt.

CommandUI.Ribbon.ListView

Die Anpassung wird angezeigt, wenn das Listenansicht-Webpart vorhanden ist.

CommandUI.Ribbon.EditForm

Die Anpassung wird auf dem Bearbeitungsformular angezeigt.

CommandUI.Ribbon.NewForm

Die Anpassung wird auf dem neuen Formular angezeigt.

CommandUI.Ribbon.DisplayForm

Die Anpassung wird auf dem Anzeigeformular angezeigt.

Siehe auch

Konzepte

Deklarative Anpassung des Menübands der Serverkomponente

Anpassen von Standardobjekten im Menüband der Serverkomponente

Architektur des Menübands der Serverkomponente

Schema des Menübands für die Serverkomponente