以编程方式创建SharePoint 2010功能区按钮,不使用特征XML

时间:2010-08-05 13:43:10

标签: sharepoint-2010 ribbon

我必须创建SharePoint 2010功能区元素(选项卡,按钮,组等)。有没有办法通过SharePoint API创建这些元素而不使用自定义操作?

编辑: 我刚刚发现了添加这样的元素(link)的可能性:

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

另一种解决方法是附加自定义Web控件并将动态控件附加到此“占位符”。

有没有办法在不使用xml节点的情况下创建元素?

1 个答案:

答案 0 :(得分:1)

对于布局页面和webpart,您可以使用Ribbon Utils for SharePoint 2010创建不带任何XML的功能区。

例如,对于布局页面,您需要从RibbonUtils.RibbonLayoutsPage继承并提供功能区的定义。

最简单页面的代码,带有自定义功能区选项卡&它上面的一个按钮看起来像这样:

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",
                        }
                    }
                }
            }

        };
    }
}

您可以在CodePlex的项目页面上找到更多示例和非常好的文档。

AFAIK,现在是以编程方式为应用程序页面创建功能区的最简单快捷的方法。的WebParts。