我必须创建SharePoint 2010功能区元素(选项卡,按钮,组等)。有没有办法通过SharePoint API创建这些元素而不使用自定义操作?
编辑: 我刚刚发现了添加这样的元素(link)的可能性:
SPRibbon r = SPRibbon.GetCurrent(Page);
r.RegisterDataExtension(/* XmlNode containing ribbon element code */);
另一种解决方法是附加自定义Web控件并将动态控件附加到此“占位符”。
有没有办法在不使用xml节点的情况下创建元素?
答案 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。