SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Ribbon-Schaltfläche soll immer aktiv sein

Unbeantwortet Dieser Beitrag hat 1 Antworten

Ohne Rang
1 Beiträge
Jingle F erstellt 17 Juni 2011 10:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Zusammen,

 

ich suche jetzt schon länger, bisher erfolglos, nach einer Lösung für folgendes Problem:

 

Ich habe ein Feature entwickelt welches einen Button in einem eigenen Tab des Ribbons darstellt. Der Button öffnet nur eine Seite und benötigt keine Liste bzw. einen ausgewählten Listeneintrag.

 

Mein Problem:

Der Ribbon-Button ist erst aktiv wenn man sich entweder in einer Liste befindet oder auf der Default-Seite (Webpartpage) einen Listen-Webpart auswählt.

Der Button sollte jedoch immer auswählbar sein (da er ja nicht von einer Liste/Listeneintrag abhängig ist), ähnlich wie z.B. die Schaltfläche „Seite bearbeiten“ im „Seite“-Tab.

 

Hier die CustomAction aus der Elements.xml:

 

<CustomAction

  Id="My.Ribbon.Tab"

  Location="CommandUI.Ribbon"

  RegistrationType="ContentType"

  RegistrationId="0x">

    <CommandUIExtension>

      <CommandUIDefinitions>

        <CommandUIDefinition Location="Ribbon.Tabs._children">

          <Tab Id="My.Ribbon.Tab" Title="MyTab">

            <Scaling Id="My.Ribbon.Tab.Scaling">

              <MaxSize Id="My.Ribbon.Tab.Groups.GroupOne.MaxSize" GroupId="My.Ribbon.Tab.Groups.GroupOne" Size="TwoLarge"/>

            </Scaling>

            <Groups Id="My.Ribbon.Tab.Groups">

              <Group Id="My.Ribbon.Tab.Groups.GroupOne" Title="Einstellungen" Sequence="10" Template="Ribbon.Templates.Large">

                <Controls Id="My.Ribbon.Tab.Groups.GroupOne.Controls">

                  <Button Id="My.Ribbon.Tab.Groups.GroupOne.Buttons.ButtonOne"

                          Command="Settings"

                          Sequence="10"

                          LabelText="Einstellungen"                         

                          Image32by32="/_layouts/images/settings.png"

                          TemplateAlias="c1"/>

                </Controls>

              </Group>

            </Groups>

          </Tab>

        </CommandUIDefinition>

        <CommandUIDefinition Location="Ribbon.Templates._children">

          <GroupTemplate Id="Ribbon.Templates.Large">

            <Layout Title="TwoLarge" LayoutTitle="TwoLarge">

              <Section Alignment="Top" Type="OneRow">

                <Row>

                  <ControlRef DisplayMode="Large" TemplateAlias="c1" />

                </Row>

              </Section>

            </Layout>

          </GroupTemplate>

        </CommandUIDefinition>

      </CommandUIDefinitions>

      <CommandUIHandlers>

        <CommandUIHandler Command="Settings" EnabledScript="true"  CommandAction="javascript:openDialog();/>

      </CommandUIHandlers>

    </CommandUIExtension>

  </CustomAction>  

 

Wenn ich in der CustomAction keinen RegistrationType und keine RegistrationId angebe wird „MyTab“ überhaupt nicht angezeigt.

 

Hat jemand vielleicht eine Idee wie ich das Problem lösen kann?

 

 

Vielen Dank im Voraus.

 

Gruß Jingle

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 17 Juni 2011 11:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das Verhalten ist erklärbar, weil damit der Tab zu einem bestimmten (in dem Fall alle) Inhaltstyp gehört und damit nur sichtbar ist, wenn der entsprechende Inhaltstyp sichtbar ist.

Wie Du es genau machen mußt, kann ich Dir nicht auswendig sagen, aber schaue Dir einfach an, wie es Microsoft gemacht hat. Die Ribbons findest Du in 14\template\global\xml\cmdui.xml

Viele Grüße
Andi
af @ evocom de
Blog