2010-08-05 6 views
0

Je dois créer un élément de ruban SharePoint 2010 (onglets, boutons, groupes, etc.). Existe-t-il un moyen de créer de tels éléments via l'API SharePoint sans utiliser d'actions personnalisées?Création d'un bouton du ruban SharePoint 2010 par programmation sans fonctionnalité XML

Edit: Je viens de trouver la possibilité d'ajouter des éléments comme celui-ci (link):

SPRibbon r = SPRibbon.GetCurrent(Page); 
r.RegisterDataExtension(/* XmlNode containing ribbon element code */); 

Une autre solution serait d'ajouter un contrôle Web personnalisé et ajouter des contrôles dynamiques à ce « espace réservé ».

Existe-t-il un moyen de créer des éléments sans utiliser de nœuds xml?

Répondre

1

Pour les pages de mise en page et les composants WebPart, vous pouvez créer un ruban sans XML, en utilisant Ribbon Utils for SharePoint 2010. Par exemple, pour la page des mises en page, vous devrez hériter de RibbonUtils.RibbonLayoutsPage et fournir votre définition d'un ruban.

Code pour la page la plus simple avec onglet ruban personnalisé & un bouton sur elle ressemblera à ceci:

public partial class MyRibbonPage : RibbonLayoutsPage 
{ 
    public override TabDefinition GetTabDefinition() 
    { 
     return new TabDefinition() 
     { 
      Id = "TestRibbon", 
      Title = "Test", 
      Groups = new GroupDefinition[] 
      { 
       new GroupDefinition() 
       { 
        Id = "TestGroup", 
        Title = "Test group", 
        Template = GroupTemplateLibrary.SimpleTemplate, 
        Controls = new ControlDefinition[] 
        { 
         new ButtonDefinition() 
         { 
          Id = "TestButton", 
          Title = "Test button", 
          CommandJavaScript = "alert('test!');", 
          Image32Url = "/_layouts/images/lg_ICHLP.gif", 
         } 
        } 
       } 
      } 

     }; 
    } 
} 

Vous trouverez plus d'exemples et une très bonne documentation sur la page du projet sur CodePlex. AFAIK, il est pour l'instant le moyen le plus simple et le plus rapide pour créer un ruban par programme pour les pages d'application & webparts.

Questions connexes