我必须创建一个 SharePoint 2010 功能区元素(选项卡、按钮、组等)。有没有办法通过 SharePoint API 创建此类元素而不使用自定义操作?
编辑: 我刚刚发现可以添加这样的元素(link):
SPRibbon r = SPRibbon.GetCurrent(Page);
r.RegisterDataExtension(/* XmlNode containing ribbon element code */);
另一种解决方法是附加自定义 Web 控件并将动态控件附加到此“占位符”。
有没有一种方法可以不使用 xml 节点来创建元素?
对于布局页面和 Web 部件,您可以使用 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 的项目页面上找到更多示例和非常好的文档。
据我所知,这是目前以编程方式为应用程序页面和 Web 部件创建功能区的最简单快捷的方法。