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

Sharepoint 2010 以编程方式创建SharePoint 2010功能区按钮,不使用功能XML,sharepoint-2010,ribbon,Sharepoint 2010,Ribbon,我必须创建SharePoint 2010功能区元素(选项卡、按钮、组等)。有没有一种方法可以通过SharePoint API创建此类元素而不使用自定义操作 编辑: 我刚刚发现了添加如下()元素的可能性: 另一种解决方法是附加自定义web控件,并将动态控件附加到此“占位符”中 有没有不使用xml节点创建元素的方法?对于布局页面和Web部件,您可以使用创建功能区而不使用任何xml 例如,对于“布局”页面,您需要继承RibbonUtils.RibbonLayoutPage并提供功能区的定义 带有自定义

我必须创建SharePoint 2010功能区元素(选项卡、按钮、组等)。有没有一种方法可以通过SharePoint API创建此类元素而不使用自定义操作

编辑: 我刚刚发现了添加如下()元素的可能性:

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


有没有不使用xml节点创建元素的方法?

对于布局页面和Web部件,您可以使用创建功能区而不使用任何xml

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

带有自定义功能区选项卡和一个按钮的最简单页面的代码如下所示:

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的项目页面上找到更多示例和非常好的文档

顺便说一句,这是目前以编程方式为应用程序页面和Web部件创建功能区的最简单、最快捷的方法

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

        };
    }
}